Как сделать 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 не

0 ответов

Другие вопросы по тегам