1

Может кто-нибудь, пожалуйста, помогите мне с запуском heroku run db:migrate? Я забыл запустить db: миграция на heroku вместе с миграцией на dev env. Я сделал coulple из них, и теперь я получаю ошибку ниже:PG :: UndefinedColumn: ОШИБКА: столбец «image_file_name» отношения «статьи» не существует

wozane:~/workspace (master) $ heroku run rake db:migrate       
Running rake db:migrate on ⬢ wozane... up, run.7786 
    (0.8ms) SELECT pg_try_advisory_lock(96974639112725850); 
    ActiveRecord::SchemaMigration Load (1.1ms) SELECT "schema_migrations".* FROM "schema_migrations" 
Migrating to RemoveColumnImage (20160917131520) 
    (0.7ms) BEGIN 
== 20160917131520 RemoveColumnImage: migrating ================================ 
-- remove_column(:articles, :image_file_name, :string) 
    (1.5ms) ALTER TABLE "articles" DROP "image_file_name" 
    (0.7ms) ROLLBACK 
    (0.8ms) SELECT pg_advisory_unlock(96974639112725850) 
rake aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

PG::UndefinedColumn: ERROR: column "image_file_name" of relation "articles" does not exist 
: ALTER TABLE "articles" DROP "image_file_name" 

Дело в том, что этот столбец был удален, и он не существует.

миграции упоминается в сообщении об ошибке (номер 20160917131520):

class RemoveColumnImage < ActiveRecord::Migration[5.0] 
    def change 
    remove_column :articles, :image_file_name , :string 
    remove_column :articles, :image_content_type, :string 
    remove_column :articles, :image_file_size, :integer 
    remove_column :articles, :image_updated_at, :datetime 
    end 
end 

schema.rb выглядит следующим образом:

ActiveRecord::Schema.define(version: 20160921115118) do 

    create_table "articles", force: :cascade do |t| 
    t.string "title" 
    t.text  "text" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "img_url" 
    end 

    create_table "photos", force: :cascade do |t| 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "title" 
    t.string "img_url" 
    t.text  "text" 
    end 

end 

Я пытался # весь код в миграции, и он не сделал помогите вместе с теми комментариями, которые не сработали:

rails db:environment:set RAILS_ENV=production 
heroku run rake db:reset 
heroku run rake db:migrate -app wozane 
heroku pg:reset DATABASE --confirm wozane 

Do кто-нибудь знает, как запустить миграцию герою в моем случае?

Заранее спасибо.

+0

Ваша таблица статей, кажется, не имеют какой-либо из колонок, которые вы пытаетесь удалить. –

+0

Я удалил его с помощью миграции ранее. Проблема в том, что я не делал «heroku run rake db: migrate» в то время и, возможно, слишком много других изменений произошло между ними. – Wozane

ответ

0

просто прокомментируйте код удаления переноса столбца.

class RemoveColumnImage < ActiveRecord::Migration[5.0] 
    def change 
    #remove_column :articles, :image_file_name , :string 
    #remove_column :articles, :image_content_type, :string 
    #remove_column :articles, :image_file_size, :integer 
    #remove_column :articles, :image_updated_at, :datetime 
    end 
end 

И попробуйте запустить heroku run rake db:migrate -app wozane

+0

Я пробовал это, не работал. – Wozane

+0

Не могли бы вы перечислить ваши текущие ошибки? – user100693

+0

Переход к RemoveColumnImage (20160917131520) (0.7ms) НАЧАТЬ == 20160917131520 RemoveColumnImage: мигрирующие - remove_column (: статьи,: image_file_name, строка): (5.1ms) Alter Table "статьи" DROP "image_file_name" (1.0ms) ROLLBACK (3.5ms) SELECT pg_advisory_unlock (96974639112725850) rake aborted! StandardError: произошла ошибка, это и все последующие миграции отмененные: PG :: UndefinedColumn: ОШИБКА: колонка "image_file_name" в отношении "статей" не существует : ALTER TABLE "статьи" DROP "image_file_name" – Wozane

Смежные вопросы