通用迁移提供程序

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第三方库


热门话题
netbeans根据命名约定返回布尔类的getter的Java名称   java如何在MessageFormat中使用单引号   java如何在整数数组中只对奇数排序,而将偶数保留在其原始位置?   自定义ArrayAdapter中未定义java构造函数   java joda时间格式化程序解析yyyyymmdd(额外一小时)   java Spring引导控制器测试始终返回404   java如何提取类文件以获取该类文件中的类?   JTable java列不会显示   java Selenium Web驱动程序输出错误的Web表行数   当应用程序在mac上打开时,java SWT选项卡项会从页面上消失   java如何将html文件映射到过滤器   swing Java计算一段时间内两点之间的转换   javawebsphere和javax。xml。ws。spi。提供者:提供者组织。阿帕奇。axis2。jaxws。spi。提供者不是子类型   For循环在Java中没有按预期继续?   java如何配置gson以排除0个整数值   java读取一个由tab分隔的文件,并将单词放入ArrayList中   java我需要做什么才能让LiveConnect重新工作?   sqlservermerge2xml&使用java提取这些数据并将其存储在db表中   java如何在模型中添加新对象时通知网格