悠悠,遷移是使用普通的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中
評論沒有發現