ravendb嵌入式库以嵌入式方式运行ravendb
pyravendb-embedded的Python项目详细描述
概述
pyravendb embedded是一个ravendb包,用于在嵌入式模式下运行ravendb。
EmbeddedServer().start_server()withEmbeddedServer().get_document_store("Embedded")asstore:withstore.open_session()assession:session.store(User(name="Ilay",age=4))session.save_changes()
安装
从PyPi安装,作为pyravendb-embedded_。
pip install pyravendb
从pip中嵌入的install pyravendb也将为您提供ravendb服务器二进制文件的副本
用法
启动服务器
要启动ravendb服务器,只需要从EmbeddedServer实例运行start_server()方法,就这样。
EmbeddedServer.start_server()
为了更好地控制您的服务器启动服务器方法可以使用一个参数服务器选项。
服务器选项
- framework_version-运行服务器的框架版本。
- data_目录-保存数据库数据的位置(如果没有,则文件将保存在基本文件夹中的ravendb文件夹中)。
- server_url-如果本地主机上没有服务器将打开的URL,则将打开服务器。
- dotnet_path-如果路径中的dotnet不需要这里的任何东西(如果您的计算机中没有安装.net core),则dotnet.exe所在的位置
- 您可以下载dotnet binaries并输入路径即可)
- 命令行参数-所有server command args的列表。
server_options=ServerOptions(data_directory="MYPATH/RavenDBDataDir")EmbeddedServer().start_server(server_options)
安全性
有两个选项可以使ravendb在pyravendb embedded中安全:
secured(certificate_path, certificate_password=None)-对于此选项,您将为服务器放置一个.pfx文件的路径,如果有,则为该文件设置一个密码。
server_options=ServerOptions()server_options.secured("PATH_TO_PFX_CERT_FILE","PASSWORD_TO_CERT_FILE")EmbeddedServer.start_server(server_options)
secured_with_exec(self, cert_exec, cert_exec_args, server_cert_fingerprint, client_cert_path, client_cert_password=None)-对于此选项,您必须放置可执行程序(例如powershell、python等)和他的参数、可以使用pyravendb实用程序的证书文件指纹(请参阅get_cert_file_fingerprint方法)、客户端证书路径和密码(如果有)。
server_options=ServerOptions()sserver_options.secured_with_exec("powershell","C:\\secrets\\give_me_cert.ps1",Utils.get_cert_file_fingerprint("PATH_TO_PEM_CERT_FILE"),"PATH_TO_PEM_CERT_FILE")EmbeddedServer.start_server(server_options)
获取文档存储
在初始化并启动服务器之后,我们可以使用get_document_store方法来获取文档存储 像平常一样和Ravendb一起工作。
EmbeddedServer().start_server()withEmbeddedServer().get_document_store("Test")asstore:pass
get_document_store方法可以获取或仅获取数据库名或数据库选项
数据库选项
- 数据库名称-数据库的名称
# In this example we won't create the Test database if not exists will raise an exceptiondatabase_options=DatabaseOptions(database_name="Test",skip_creating_database=True)withEmbeddedServer().get_document_store(database_options)asstore:# Your code here
在浏览器中打开ravendb studio
要从pyravendb embedded打开ravendb studio,可以使用open_studio_in_browser方法,studio将自动打开 一个默认浏览器。
EmbeddedServer().open_studio_in_browser()
致谢
embeddedserver类是单例的!
每次我们使用EmbeddedServer()时,都会得到相同的实例。