Saya ingin melakukan migrasi untuk aplikasi Flask. Saya menggunakan Alembic.
Namun, saya menerima kesalahan berikut ini.
Target database is not up to date.
Secara online, saya membaca bahwa itu ada hubungannya dengan ini. http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch
Sayangnya, saya tidak begitu mengerti cara memperbarui database dan di mana / bagaimana saya harus menulis kode yang diberikan di tautan. Jika Anda memiliki pengalaman dengan migrasi, dapatkah Anda menjelaskan hal ini untuk saya
Terima kasih
sumber
Ini dapat diselesaikan dengan banyak cara:
1 Untuk memperbaiki kesalahan ini, hapus file migrasi terbaru (file python) kemudian coba lakukan migrasi lagi.
Jika masalah masih berlanjut, coba perintah ini:
$ flask db stamp head # To set the revision in the database to the head, without performing any migrations. You can change head to the required change you want. $ flask db migrate # To detect automatically all the changes. $ flask db upgrade # To apply all the changes.
sumber
Saya harus menghapus beberapa file migrasi saya karena suatu alasan. Tidak yakin kenapa. Tapi itu memperbaiki masalahnya, semacam itu.
Satu masalah adalah bahwa database akhirnya diperbarui dengan benar, dengan semua tabel baru, dll., Tetapi file migrasi itu sendiri tidak menunjukkan perubahan apa pun ketika saya menggunakan automigrate.
Jika seseorang memiliki solusi yang lebih baik, beri tahu saya, karena saat ini solusi saya agak hacky.
sumber
Base = declarative_base()
dan juga ingatfrom sqlalchemy.ext.declarative import declarative_base
$ flask db stamp head # To set the revision in the database to the head, without performing any migrations. You can change head to the required change you want. $ flask db migrate # To detect automatically all the changes. $ flask db upgrade # To apply all the changes.
Anda dapat menemukan info lebih lanjut di dokumentasi https://flask-migrate.readthedocs.io/en/latest/
sumber
Saya juga mengalami kepala yang berbeda dan saya ingin mengubah salah satu bidang dari string menjadi integer, jadi jalankan dulu:
$ flask db stamp head # to make the current the same $ flask db migrate $ flask db upgrade
Ini diselesaikan sekarang!
sumber
Ini juga dapat terjadi jika Anda, seperti saya sendiri, baru saja memulai proyek baru dan Anda menggunakan database SQLite dalam memori (
sqlite:///:memory:
). Jika Anda menerapkan migrasi pada database seperti itu, jelas lain kali Anda ingin mengatakan buat revisi secara otomatis, database akan tetap dalam keadaan semula (kosong), jadi alembic akan mengeluh bahwa database target tidak sesuai tanggal. Solusinya adalah beralih ke database yang ada.sumber
Untuk memperbaiki kesalahan ini, hapus file migrasi terbaru (file python) lalu coba lakukan migrasi lagi.
sumber
Coba jatuhkan semua tabel sebelum menjalankan perintah peningkatan db.
sumber
Untuk mengatasi ini, saya menjatuhkan (menghapus) tabel dalam migrasi dan menjalankan perintah ini
dan
sumber