Rails kehilangan masalah file migrasi

2 bulan yang lalu, salah satu file migrasi saya telah dihapus. Masalahnya adalah ketika saya rake db:migrate database saya di localhost migrasinya hilang. Saya tidak dapat membuat migrasi baru karena database produksi dimigrasikan dengan file yang hilang. Jadi setiap kali saya mengimpor database produksi di lokal dan menjalankan migrasi dikatakan:

Kolom sudah ada....

Saya melihat beberapa komentar yang mengatakan saya harus mengubah tabel skema_migrasi dengan versi file migrasi yang sesuai.

Apakah Anda memiliki penjelasan lebih dalam tentang masalah ini.

Terima kasih


person maxencenoel    schedule 28.11.2013    source sumber


Jawaban (1)


tabel skema_migrasi menyimpan semua nomor versi dari semua migrasi yang telah dijalankan, atau yang menurut sistem setidaknya telah dijalankan. Saat Anda melakukan rake db:migrate, Rails melihat semua file di db/migrate, dan mengabaikan file yang awalan numeriknya ada di schema_migrations.

Jadi, jika Anda memiliki migrasi yang sebenarnya sudah dijalankan, tetapi sistem menganggapnya belum, Anda hanya perlu menambahkan nomor versinya ke dalam skema_migrasi.

Buka konsol database yang relevan, dan ketik

insert into schema_migrations (version) values("<the number from the start of the migration file>");

tentunya ganti bagian di ‹ > dengan nomor yang sesuai.

Kemudian, db:migrate tidak akan lagi mencoba dan menjalankan migrasi tersebut.

person Max Williams    schedule 28.11.2013