Google App EngineとCloudSQLを使用して移行を処理する方法については、私の生活の中でドキュメントを見つけることはできません。Goランタイムを使用しています。GAE CloudSQLの最適な移行戦略は何ですか
明らかに、アプリケーションのスキーマは時間が経つにつれて変化し、進化し、移行を実行する必要があります。現在、私は手動で移行を実行しています。これはスケーラブルではありません。
ソリューションをお持ちの方はいらっしゃいますか?
私はいくつかの具体的な課題を参照してください。
私はVersionIDを使用して、現在の
app.yaml
デプロイされたバージョンのバージョンを取得することができます。ただし、このバージョンで移行が行われたかどうかを確認するにはどうすればよいですか?私はdbテーブルにバージョン番号を保持し、それに対してinit()
機能でチェックする必要がありますか?あなたはGAEはゆっくりmigrate your trafficあなたの新しいバージョンを実行中init()
の最初のインスタンスたら意味し、移行が完了すると、古いバージョンの意志へのトラフィック新しいスキーマで、アプリの新バージョンをアップロードしかし、それらのdbトランザクションで失敗します。
私のAPIをバージョン管理することで上記の問題を多少緩和することができました。しかし、これは最後に
、テーブルをドロップするように移行戦略、などを制限し、私はdocumentationは、私の知る限り、この上ありません失望します。
環境に固有の問題はありません。 Cloud SQLはmysqlだけで、gaeはコードを実行する場所です。 –
興味のある少なくとも1つの特定の場合:http://stackoverflow.com/questions/34670194/handling-schema-migrations-in-app-engine –
@DanCornilescuありがとう!ただし、データストアエンティティのように見えます。 –