悠悠,迁移是使用普通的SQL和DB-API数据库架构迁移实用程序。
什么是YOYO-迁移呢?
作为数据库应用的发展,改变数据库模式往往是必需的。这些通常可以写成包含CREATE / ALTER TABLE语句(尽管任何SQL或Python脚本可以用YOYO-迁移使用)一次性SQL脚本。
YOYO-迁移提供了一个命令行工具,用于读取这些脚本的目录,并根据需要将它们应用到你的数据库。
数据库支持
PostgreSQL的,MySQL和SQLite数据库的支持。
用法
YOYO-迁移通常被援引作为一个命令行脚本。
例子:
阅读所有迁移从目录迁移,并将它们应用到PostgreSQL数据库:
YOYO-迁移应用./migrations/ Postgres的://用户名:密码@本地/数据库
回滚迁移以前应用的MySQL数据库:
YOYO-迁移回滚./migrations/的mysql://用户名:密码@本地/数据库
重新应用(即回滚然后重新申请)迁移到位置/home/sheila/important-data.db SQLite数据库:
YOYO-迁移再涂./migrations/源码:////home/sheila/important-data.db
默认情况下,YOYO-迁移开始进入交互模式,提示您申请之前,每个迁移的文件,因此很容易选择应用和回滚该迁移。
在迁移目录应包含一系列迁移脚本。每个迁移脚本是包含一系列步骤一个python文件(的.py)。每个步骤应包括一个迁移查询和(任选)回滚查询。例如:
#
#文件:迁移/ 0001.create-foo.py
#
步骤(
 “CREATE TABLE FOO(ID INT,酒吧VARCHAR(20),PRIMARY KEY(ID))”,
 “DROP TABLE foo”的,
)
每个文件(不.py扩展)的文件名被用作标识符的每个迁移。迁移应用在文件名的顺序,因此它是有用的使用日期(例如“20090115-xyz.py'),或与另一递增的数字来命名您的文件。
YOYO-迁移目标数据库,_yoyo_migration创建一个表,以跟踪哪些迁移已应用。
步骤也可以采取一个可选的参数ignore_errors,这必须是适用的,回滚或全部。如果表foo可能已经创建了通过其他方法在前面的例子中,我们可以增加ignore_errors ='应用'到步骤以允许迁移继续无论:
#
#文件:0001.create-foo.py
#
步骤(
 “CREATE TABLE FOO(ID INT,酒吧VARCHAR(20),PRIMARY KEY(ID))”,
 “DROP TABLE foo”的,
  ignore_errors ='申请',
)
步骤也可以是需要一个数据库连接作为一个参数蟒蛇可调用的对象。例如:
#
#文件:0002.update_keys.py
#
高清do_step(CONN):
 光标= conn.cursor()
  cursor.execute(
 “INSERT INTO SYSINFO”
 “(OSNAME,主机名,发布,版本,拱)”
 “VALUES(%S,%S,%S,%S,%s%S)”,
  os.uname()
 )
步骤(do_step)
密码的安全性
你通常指定数据库的用户名和密码作为命令行上的数据库连接字符串的一部分。在一个多用户的机器,其他用户可以查看进程列表中你的数据库的密码。
-p或--prompt密码标志导致YOYO-迁移到提示输入密码,忽略连接字符串中指定的任何密码。该密码将不提供通过系统的过程的列表的其他用户。
连接字符串缓存
第一次运行一套新的迁移YOYO-迁移,你会如果你想缓存在一个叫做.yoyo-迁移的迁移目录中的文件的数据库连接字符串要求。
这个缓存是本地的迁移目录,因此在相同的迁移组后续的运行并不需要被指定的数据库连接字符串。
这样可以节省打字,避免你的数据库的用户名和密码显示在过程列表和减轻意外运行错误的数据库YOYO-迁移(即由当你移动到一个重新运行在你的命令历史较早的YOYO-迁移进入风险不同的目录)。
如果你不希望这个缓存文件中使用时,--no-cache参数添加到命令行选项
什么是此版本中的新:
- 在修正了经营不善的4.2.3版本
什么版本4.2.1的新:
- 在修正了以前的版本,其中省略了关键文件。
什么是4.1.6版本,新的:
- 在增加Windows支持(感谢Peter Shinners)
什么是4.1.5版本,新的:
- 在配置日志处理程序,使-v选项的原因输出去控制台(感谢Andrew Nelis)。
- ``-v``命令行开关不再需要一个说法,但可多次指定,而不是(即使用``-vvv``,而不是``-v3``)。 ``--verbosity``保留旧的行为。
什么版本4.1.3的新:
- 在更改默认迁移表名回“_yoyo_migration”
要求:
- 在Python中
评论没有发现