xalanih是一个python脚本,用于帮助您版本化sql数据库。

xalanih的Python项目详细描述


什么是xalanih?

xalanih是一个python脚本,用于帮助您版本化sql数据库。您可以使用它来管理项目的创建或更新数据库。

技术要求

  • python 3.6
  • mysqlclient
  • sqlparse

如何安装xalanih

pip3 install xalanih

如何使用xalanih

创建数据库

python3 -m xalanih create <database>

其中,<;database>;必须替换为数据库的名称。

更新数据库

python3 -m xalanih update <database>

其中,<;database>;必须替换为数据库的名称。

选项

可以为脚本提供不同的选项。您可以使用以下命令查找所有这些文件:

python3 xalanih -h

工作目录

-d <directory>

指定所有数据库脚本所在的目录。

默认值:“

数据库类型

-t <type>

指定脚本必须连接到的数据库类型。

接受值:mysql 默认值:mysql

宿主

-H <host>

数据库主机的地址。

默认值:本地主机

端口

-p <port>

数据库的端口。

默认值:3306

用户

-u <user>

用于连接的用户

默认值:根

密码

-pwd <password>

用于连接到数据库的密码。

插座

-s <socket>

MySQL套接字的路径(如果它不在默认位置(/tmp/mysql.sock))。

记录

这些选项链接到日志记录。

详细
-v <verbosity>

标准输出中日志的详细程度。

接受值:0,1,2,3,4{str 1}$默认值:3

  • 0:没有日志。
  • 1:仅错误。
  • 2:错误和警告。
  • 3:信息、警告和错误。
  • 4:调试、信息、警告和错误。

日志文件

-l <filename>

保存日志的文件的名称。它不受详细选项的影响(它始终设置为4)。如果未指定文件,则不会创建任何文件。

上次更新

-to <update>

定义将应用的最后一次更新。必须是不包含在included_updates中的更新。

无更新

-nu

仅对“创建”选项有效。如果指定,脚本将只执行创建脚本,而不应用更新。

如何构造包含数据库脚本的目录

用于包含数据库所有脚本的目录的结构。

L creation (directory)
    L  creation.sql (file)
    L  included_updates (file)
L update (directory)
    L  script01.sql (file)
    L  ...

创建(目录)

creation目录将包含用于创建数据库基线的脚本。只有在从零创建数据库时才会调用这些函数。这意味着在数据库更新的情况下不会使用它们。

creation.sql(文件)

脚本creation.sql是xalanih创建数据库的入口点。此文件必须包含创建数据库基线所需的所有脚本。

包含更新(文件)

当您有大量的更新文件时,您将希望使用这些修改直接创建数据库,而不是在之后应用它们。为此,必须将修改直接添加到creation.sql中。但是,为了使xalanih不应用更新脚本,您必须添加已集成到文件中的所有更新脚本的名称。应该一行一个文件名。

更新(目录)

update目录必须包含所有yo你的更新脚本(没有别的)。更新脚本并没有真正的名称,但是字母顺序应该与它们的时间顺序相对应。此外,任何补丁都不能命名为initial_install。这是因为此名称与数据库的创建关联

xalanih创建的表:xalanih_更新

xalanih_patches表包含3列: ID、更新名称和更新应用时间。 脚本使用它来检测已应用的修补程序。与数据库的初始创建关联的修补程序名是initial_install

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
两个日期之间的datetime Java HashMap筛选器   java会选择以下选项吗:django+smartGWT似乎是一个不错的选择?   java如何在jsp中显示Json对象   从Java代码调用装入点文件路径   接口中的java JPA Hibernate更新查询   java在从jsp调用时从类获取根目录   java JFileChooser在JTextField中显示多个选定文件   在Springbean基类中定义的方法中使用@Retryable的java不会被重试   java StackOverflower错误和等于疯狂数字的值   swing使Java打印的页边距更小   java使用Matisse GUI builder设置最大宽度   带MySQL的java注册表单JavaFX在intellij中失败   java监听音量按钮事件安卓   java正在寻找一个新的应用程序。NET 3.5/J2EE体系结构概念比较文章/图表   java如何使用SpringJDBC检索记录   java MULE ESB:带有regex()函数的表达式过滤器   java JFrame按钮逻辑错误   java Android SQLite在Date1和Date2之间选择   java求解丢番图方程