简单的原始SQL数据库架构迁移工具。
sqlmigrate的Python项目详细描述
概述
这个工具帮助您跟踪和发展您的数据库模式(sql)。
它是这样工作的。每当您对数据库模式进行更改时,都会将它们放入“迁移”中—只需一个带有一系列SQL语句的.sql文件。sqlturk跟踪已应用的迁移,并以保证的顺序运行它们。
设计
有很多工具可以解决数据库模式问题 迁移。以下是sqlturk的不同之处:
- 单向迁移。无法“回滚”迁移。在我的 经验,“降级”脚本几乎从未使用过,但编写它们却给开发人员增加了相当大的负担。它们的出现可能会增加一种错误的安全感,因为它们很少使用,所以很有可能无论如何都无法正常工作。
- python不可知。sqlturk根据sql ddl进行操作。它不适用于sqlalchemy orm模型或django模型,因此可以在更广泛的上下文中使用。普通sql还意味着一个对python一无所知的称职dba可以编写这些脚本。或者它们可以由另一个工具自动生成。
- 没有魔法。我想要一个明显的,容易理解的工具。更改数据库模式可能会产生很大的后果,因此了解发生了什么非常重要。
不相信?一些更复杂的工具:Django South和sqlalchemy-migrate。
API使用
简短示例:
>>> from sqlturk.migration import MigrationTool >>> tool = MigrationTool('sqlite:///:memory:', migration_dir='testmigrations') >>> tool.install() # create a database table to track schema changes >>> tool.find_migrations() ['1_foobar', '2_foobar_data', '10_foobar_delete'] >>> tool.run_migrations() >>> tool.find_migrations() # check that all migrations have been applied []
可以找到迁移脚本示例 in the sqlturk’ source。sqlturk使用sqlalchemy语法指定数据库连接字符串,有关详细信息,请参见其documentation。