これには何も組み込まれていません。私が今のところ自分で行ったことは、Rails の動作と似ていますが、個別のタスクではなく、スタートアップの一部としてです。最初にMeteor.Collection
Migrations という名前のファイルを作成し、個別の移行ごとに、server
起動時に実行されるサブディレクトリの下に関数を作成します。以前に実行されていない場合にのみ移行を実行する必要があり、完了したら Migrations コレクションで移行にフラグを立てる必要があります。
// database migrations
Migrations = new Meteor.Collection('migrations');
Meteor.startup(function () {
if (!Migrations.findOne({name: "addFullName"})) {
Users.find().forEach(function (user) {
Users.update(user._id, {$set: {fullname: users.firstname + ' ' + users.lastname}});
});
Migrations.insert({name: "addFullName"});
}
});
この手法を拡張してダウン マイグレーションをサポートし (特定のマイグレーションの存在を探して元に戻す)、マイグレーションに並べ替え順序を適用し、必要に応じて各マイグレーションを個別のファイルに分割することができます。
これを自動化するためのスマートなパッケージについて考えるのは興味深いことです。