PG :: UndefinedTable: ERROR: отношение "active_storage_blobs" не существует - PullRequest
2 голосов
/ 22 января 2020

Обновлено приложение Rails 5.2 до 6, следующие две миграции были добавлены обновлением:

    # This migration comes from active_storage (originally 20190112182829)
    class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0]
  def up
    unless column_exists?(:active_storage_blobs, :service_name)
      add_column :active_storage_blobs, :service_name, :string

      if configured_service = ActiveStorage::Blob.service.name
        ActiveStorage::Blob.unscoped.update_all(service_name: configured_service)
      end

      change_column :active_storage_blobs, :service_name, :string, null: false
    end
  end
end

и

# This migration comes from active_storage (originally 20191206030411)
class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0]
  def up
    create_table :active_storage_variant_records do |t|
      t.belongs_to :blob, null: false, index: false
      t.string :variation_digest, null: false

      t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true
      t.foreign_key :active_storage_blobs, column: :blob_id
    end
  end
end

попытка запустить миграцию выдает ошибку me на заглавие. Не нашли ничего в сети, есть идеи как это исправить?

1 Ответ

3 голосов
/ 22 января 2020

Таблица active_storage_blobs еще не существует. Сначала необходимо выполнить:

rails active_storage:install

Эта команда добавит 2 миграции для 2 таблиц: active_storage_attachments и active_storage_blobs.

Эти новые миграции должны быть запущены перед миграциями, которые у вас есть выше. Для этого есть хитрость: вы можете вручную изменить временную метку в именах файлов двух миграций, которые у вас есть выше, на одну, превышающую 2 новые миграции, которые создаст active_storage:install.

После того, как все это отсортировано запустить rake db:migrate

...