How do I disable the migrations feature in a Rails app?

前端 未结 2 1331
独厮守ぢ
独厮守ぢ 2021-01-03 09:39

Background

We engineer database models and application models separately (RDMBS architects vs OOP engineers). From what I\'ve seen regarding Rails

相关标签:
2条回答
  • 2021-01-03 10:26

    In juanitogan's answer, we disable all db tasks. In my case I still wanted to be able to run db:schema:load. Here the slightly modified code for the Rakefile:

    # Disable migrations
    Rake::Task.tasks.each do |t|
      if t.name.start_with?("db:migrate")
        t.clear
        t.add_description("Disabled; Load the data model via db:schema:load.")
        t.actions << proc { puts "Migrations ignored. That's ok. Please see README."}
      end
    end
    

    When creating models, you can append the --no-migration option like so: rails g model abc --no-migration

    0 讨论(0)
  • 2021-01-03 10:42

    This came up again when testing finally came to the front. Thus, I took deeper look and came up with the following thanks, in part, to the comments left on the question. This removes all rake DB capabilities and tests still run fine. (In case anyone is wondering, we clone the test DB from elsewhere when we need to refresh it.)

    Add this to the Rakefile:

    # Disable DB migrations, DB test preparing, etc.
    Rake::Task.tasks.each do |t|
        if t.name[0,3] == "db:"
            t.clear
            t.add_description("!!! Disabled in favor of enterprise design at Acme.")
        end
    end
    

    Comment out all the fixtures in test/test_helper.rb:

    #fixtures :all
    
    0 讨论(0)
提交回复
热议问题