Как сделать rake db:migrate dump правильной схемой, когда мы используем Scenic для управления представлениями
Каждый раз бег rake db:migrate
это порождает в результате бесполезный db/schema.rb
файл, который не может быть загружен rake db:schema:load
просто потому, что мои взгляды сбрасываются неправильно.
Я заметил, что дамп идет с моими представлениями и таблицей с тем же именем. Это вызывает ошибку из-за имени таблицы, которая уже существует.
В настоящее время я использую rails 4.2.11, а версия Scenic в моем gemfile - 1.4.1.
Это несколько моих таблиц и представление, которое использует их, я попытался удалить все определения для таблицы foo_bar
(то же имя вида) вручную и после этого rake db:schema:load
работал. Но в следующий раз я побежал db:migration
эти бесполезные таблицы придут снова.
ActiveRecord::Schema.define(version: 2) do
create_table "foo_bar", id: false, force: :cascade do |t|
t.integer "id", limit: 4, default: 0, null: false
t.string "uuid", limit: 36
t.decimal "quantity", precision: 20, scale: 4, default: 0.0
t.integer "bar_id", limit: 4, default: 0
t.decimal "price", precision: 20, scale: 4, default: 0.0
end
create_table "foo", force: :cascade do |t|
t.string "uuid", limit: 36
t.decimal "quantity", precision: 20, scale: 4, default: 0.0
end
create_table "bar", force: :cascade do |t|
t.decimal "price", precision: 20, scale: 4, default: 0.0
t.integer "foo_id", limit: 4
t.decimal "quantity", precision: 20, scale: 4, default: 0.0
end
add_index "bar", ["foo_id"], name: "index_bars_on_foo_id", using: :btree
add_foreign_key "bar", "foo"
create_view "foo_bar", sql_definition: <<-SQL
select `s`.`id` AS `id`,`s`.`uuid` AS `uuid`,`s`.`quantity` AS `quantity`,`t`.`id` AS `bar_id`,`t`.`price` AS `price` from (`foo` `s` left join `bar` `t` on(((`t`.`foo_id` = `s`.`id`))))
SQL
end
Моя база данных намного больше этой, и теперь каждый раз, когда мне нужно запустить новое приложение, мне нужно запускать все миграции с нуля, и это занимает много времени, и schema:load
не