2017-08-28 71 views
0

我一直在調查如何使用gh-ost,似乎還沒有與flyway/liquibase等工具集成。 GH-OST必須這樣運行:gh-ost在線遷移與flyway/liquibase等工具集成

./gh-ost --host=XXX--user=XXXX--password=XXXX--database=XXX--table=XXX --alter="ADD COLUMN XXX INT NOT NULL DEFAULT '0'" 

看來,表名和「改變」 SQL命令的GH-OST命令參數的一部分。

有沒有什麼辦法可以像flyway/liquibase所提供的工具一樣使用gh-ost優點(在線模式遷移)?

回答

0

它看起來並不重要。使用Flyway,您可以使用Custom Migration resolvers & executors在gh-ost命令中打包特殊文件。對於概念驗證,您可以使用Java類遷移來調用操作系統來運行Gh-ost命令。

+1

我已經添加了一個新的MigrationResolver併爲他的flyway執行者添加了一個新的MigrationExecutor。在這個新的執行者中,我只是對gh-ost進行了系統調用。如果我確定了任何異常,那麼我只需拋出一個SQLException,以便它可以通過flyway拾取,以便它可以將遷移標記爲不成功。我可能需要更多地調整它,並對照真實生活數據庫進行測試,但到目前爲止它看起來不錯。 –