gpt4 book ai didi

ruby-on-rails - Rails : How to create migration in subdirectory with Rails?

转载 作者:行者123 更新时间:2023-12-04 22:16:19 28 4
gpt4 key购买 nike

我正在编写一个SaaS模型应用程序。
我的应用程序数据库由两个逻辑部分组成:

  • 应用程序表-例如用户,角色...
  • 用户定义的表(他可以从UI级别生成它们)对于每个应用程序实例
  • 可以有所不同

    所有表都是由Rails迁移机制创建的。
    我想将用户定义的表放在另一个目录中:
  • 数据库/迁移-应用程序表
  • db/migrations/custom-用户
  • 生成的表

    因此我可以在db/migrations/custom上执行svn:ignore,并且当我在客户端服务器上更新应用程序时,它只会更新应用程序表迁移。
    有什么办法可以实现这一目标吗?

    最佳答案

    任务rake db:migrate具有用于迁移的硬编码路径。但是您可以创建自己的瑞克任务。例如,使用以下内容创建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迁移。

    关于ruby-on-rails - Rails : How to create migration in subdirectory with Rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4635757/

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