通用迁移提供程序

trek的Python项目详细描述


trek是一个简单的工具,可以执行您想要的任何迁移。它有 糟糕的文档,因为它是1.0之前的版本。

用法

安装!pip install trek

现在假设您有一个迁移目录:

migrations
├── 1.sql
├── 2.sql
└── 3.sql

其中每个都有点像这样:

-- MIGRATE UP
CREATE TABLE test (
    id INTEGER PRIMARY KEY
);

-- MIGRATE DOWN
DROP TABLE test;

(使用任何注释字符,但是带有MIGRATE UPMIGRATE DOWN的行将被排除,并且每行只需要一个。还要注意 为了简化这个例子,我们使用了数字,但是您可能应该 使用时间戳,如2014-01-01T00-00-00_human_name.sql

然后您可以运行:

trek --runner=postgres up postgres://trek_test@localhost/trek_test

迁移将为您运行。魔法!

写你自己的跑步者

runner只是一个python对象,具有versionupdown 方法。version将在没有参数的情况下调用,以确定当前 版本,而updown将使用名称(字符串)和 Migration对象(具有字符串updown成员)。updown应该是生成器,您可以生成所需数量的消息 以便用户知道发生了什么。

将migrator放入文件后,使用 python.path.to.module:MigratorName。例如,postgres migrator是 通过cli界面展开,但它的完整路径是 trek.runners.postgres:PostgresRunner

待办事项

  • ⑤在PYPI上释放
  • ☆添加Postgres Migrator
  • 根据需要添加其他迁移器(在github上打开一个问题, 拜托!)
  • 添加烧瓶脚本管理器界面

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

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON