gpt4 book ai didi

database - Meteor 如何执行数据库迁移?

转载 作者:太空狗 更新时间:2023-10-30 01:39:40 24 4
gpt4 key购买 nike

如何使用 Meteor 执行数据库迁移? Ruby on Rails 有 ActiveRecord::Migration。 Meteor 中是否有等效的机制?

例如,我用一些用户数据制作了一个应用程序。我使用 JSON 格式将数据存储在 Mongo 中。应用程序更改,JSON 数据库架构需要更改。我可以编写一个迁移方法来更改模式,但是,我只希望它在服务器数据库过时时运行。

最佳答案

没有为此内置任何内容。我自己现在所做的与 Rails 的工作方式类似,但作为启动的一部分而不是单独的任务。首先创建一个名为 Migrations 的 Meteor.Collection,然后对于每个离散的迁移,在启动时运行的 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"});
}
});

您可以扩展此技术以支持向下迁移(查找给定迁移的存在并将其反转),对迁移执行排序顺序,并根据需要将每个迁移拆分为单独的文件。

考虑一个智能包来自动执行此操作会很有趣。

关于database - Meteor 如何执行数据库迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com