아무 것도 내장되어 있지 않습니다. 제가 지금까지 해 온 일은 Rails의 작동 방식과 비슷하지만 별도의 작업 대신 시작 과정의 일부로 수행됩니다. 먼저 Meteor.Collection
이라는 마이그레이션을 만든 다음 각 개별 마이그레이션에 대해 시작시 실행되는 server
하위 디렉터리 아래에 함수를 만듭니다. 이전에 실행되지 않은 마이그레이션 만 실행해야하며 완료되면 마이그레이션 컬렉션의 마이그레이션을 플래그 지정해야합니다.
// 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"});
}
});
당신은, (주어진 마이그레이션의 존재를보고 그것을 역) 마이그레이션을 지원하는 마이그레이션에 정렬 순서를 적용하는이 기술을 확장하고, 당신이 원하는 경우 별도의 파일로 각각의 마이그레이션을 분할 할 수있다.
자동화를위한 스마트 패키지에 대해 생각해 보는 것은 흥미로운 일입니다.
결국이 논리로 스마트 패키지를 만들 수있는 동기가 생길 수 있습니다. 이것은 여전히 불분명 한 유성 (meteor) 방법보다 낫습니다. – wizonesolutions
동일한 데이터베이스 (여러 웹 서버 또는 마이크로 서비스)에서 둘 이상의 서버를 실행하는 경우 5 개의 서버가 모두 동일한 쿼리를 실행하면 문제가 발생할 수 있습니다. 이 패키지는 [잠금 메커니즘] (https://github.com/percolatestudio/meteor-migrations/blob/master/migrations_server.js#L159)을 사용하는 것으로 보입니다 –