加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用Rails在子目录中创建迁移?

发布时间:2020-12-17 01:44:44 所属栏目:百科 来源:网络整理
导读:我正在编写SaaS模型应用程序. 我的应用程序数据库包含两个逻辑部分: 应用程序表 – 例如用户,角色…… 用户定义的表(他可以从ui级别生成它们),每个应用程序实例可以有所不同 所有表都是由rails迁移机制创建的. 我想将用户定义的表放在另一个目录中: db / m
我正在编写SaaS模型应用程序.
我的应用程序数据库包含两个逻辑部分:

>应用程序表 – 例如用户,角色……
>用户定义的表(他可以从ui级别生成它们),每个应用程序实例可以有所不同

所有表都是由rails迁移机制创建的.

我想将用户定义的表放在另一个目录中:

> db / migrations – 应用程序表
> db / migrations / custom – 用户生成的表

所以我可以做svn:忽略db / migrations / custom,当我在客户端服务器上更新我的应用程序时,它只会更新应用程序表的迁移.

有没有办法在rails中实现这个目标?

解决方法

任务rake db:migrate具有迁移的硬编码路径.但是你可以创建自己的rake任务.例如,使用以下内容创建lib / tasks / custom_db_migrate.rake:

namespace :db do
  task :custom_migrate => :environment do
    ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
    ActiveRecord::Migrator.migrate("db/migrate/custom",ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
    Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
  end
end

现在,您可以运行rake db:custom_migrate来运行位于db / migrate / custom中的迁移.但它不会使用默认路径中的迁移.

您可能希望read the source code用于ActiveRecord迁移.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读