Bir geliştirme ortamında sqlite veritabanıyla iyi çalışan flask-migrate (sürüm 1.8.0) kullanıyorum. Şimdi verilerimizi MySQL'e taşımak ve tüm geçiş geçmişimizi korumak istiyorum (bu yüzden git depomuzda Flask-SQLAlchemy modellerimizle senkronize kalır). Çoklu geliştirme ortamlarında Flask geçişini nasıl kullanabilirim
boş bir MySQL veritabanı oluşturulur ve benim SQLALCHEMY_DATABASE_URI değiştirdikten sonra, koşuyorum çalıştı: Tablo migrate_version düşmesi mümkün değil varlık hakkında hatayla sonuçlandıpython manage.py db upgrade
. Ben
python manage.py db init
Şimdi: (. Bu yeni bir veritabanı olduğundan sqlite aslında tabloyu 'alembic_version' değil 'migrate_version' içeriyor olsa Ki, mantıklı) Böylece
, bu yeni veritabanını başlatmak için çalıştı Bir hata: "Dizin taşıma işlemleri zaten var".
Bu klasörü yeniden adlandırabilir ve komutu sorunsuz bir şekilde yeniden çalıştırabilirim, ancak önceki tüm geçişlerimi kaybediyorum. Test ve üretim ortamlarımıza geçiş yaptığımızda da aynı sorunları yaşayacağımızı düşünüyorum.
Flask-Migrate'ın birden çok veritabanı desteğine sahip olduğunu gördüm, ancak tek bir geliştirme ortamında birden çok veritabanını korumak için daha fazla görünüyor. Birden çok geliştirme ortamında Flask-Migrate parça değişikliklerine sahip olmanın bir yolu var mı?
Öneriniz için teşekkürler. Veritabanını yeniden oluşturdum, python manage.py db yükseltmesi çalıştırdım ama yine de sqlchemy.exc.ProgrammingError hatası döndürdü: (mysql.connector.errors.ProgrammingError) 1051 (42S02): Bilinmeyen tablo 'sps.migrate_version '[SQL: u' \ nDROP TABLE migrate_version '] ' – AmZar
Veritabanını" bıraktınız "ve önerdiğim gibi tamamen yeni bir tane mi yaptınız? Yorumunuza dayanarak öyle görünmüyor. – Miguel
Yep. Db'yi bıraktım ve yeniden oluşturdum. Ayrıca yeni bir isimle bir şema oluşturmayı denedim. Sqlalchemy-migrate ile ilgili notunuz yine de yardımcı oldu. Ben sqlalchemy-migrate ve flask-migrate yüklü vardı. Eskiyi kaldırdım. Yine de aynı sonuçları aldım. – AmZar