Có cách nào để chạy lệnh cào cho db: di chuyển và db: rollback trên bàn điều khiển không?Chạy di chuyển từ bảng điều khiển đường ray
Rất tiếc khi đợi môi trường đường ray tải!
Có cách nào để chạy lệnh cào cho db: di chuyển và db: rollback trên bàn điều khiển không?Chạy di chuyển từ bảng điều khiển đường ray
Rất tiếc khi đợi môi trường đường ray tải!
này sẽ cho phép bạn di chuyển mà không cần tải lại đường ray toàn bộ môi trường:
ActiveRecord::Migrator.migrate "db/migrate"
và rollback:
# 3 is the number of migration to rollback, optional, defaults to 1
ActiveRecord::Migrator.rollback "db/migrate", 3
Tôi đã tạo một phương thức trong tệp .irbrc của tôi để chạy di chuyển rồi tải lại bảng điều khiển:
def migrate
if defined? Rails::Console # turn off info logging for Rails 3
old_log_level = ActiveRecord::Base.logger.try(:sev_threshold)
ActiveRecord::Base.logger.sev_threshold = Logger::WARN
end
reload! && migations_ran = true if ActiveRecord::Migrator.migrate(Rails.root.join("db/migrate")).any?
ActiveRecord::Base.logger.sev_threshold = old_log_level if defined? old_log_level
migations_ran ||= nil # useful exit status
end
Xem toàn bộ tập tin ở đây: https://gist.github.com/imme5150/6548368
Trong giao diện điều khiển:
ActiveRecord::Migration.remove_column :table_name, :column_name
Hoàn hảo để chạy các lệnh di chuyển. Cảm ơn bạn. –
Sau khi bạn làm điều này, bạn cần phải cập nhật thủ công lược đồ của mình. –
@WestonGanger như thế nào? – nruth
Một cách khác mà tôi tìm thấy gọn gàng để chỉ chạy một số lệnh di cư từ giao diện điều khiển là:
ActiveRecord::Schema.define do
create_table :foo do |t|
t.string :bar
t.timestamps
end
end
Điều này có lợi thế là nội dung bên trong khối tương thích với việc chỉ sao chép và dán nội dung ngẫu nhiên từ tệp di chuyển thực sự/schema.rb
.
Lưu ý rằng nếu bạn đang sử dụng Mongoid, nó giống nhau: 'Mongoid :: Migrator.migrate" db/migrate "' –
Điều này là hoàn hảo để thêm vào test_helper.rb của bạn trong ứng dụng Rails –
Lỗi đã nhận, bash: ActiveRecord :: Migrator.migrate: không tìm thấy lệnh ... sử dụng Rails 2.3.18, ruby 1.9.3p551, Bây giờ được thực thi sau khi thực thi lệnh bên trong giao diện điều khiển đường ray. –