問題タブ [sqlalchemy-migrate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - sqlalchemyとelixirでsqliteデータベーススキーマを更新します
elixir/sqlalchemyを使用してデータを保存するPythonアプリケーションを作成しました。ソフトウェアの2番目のリリースでは、テーブルと列を追加/削除するために、以前のバージョンで作成されたファイルを更新する必要があります。
私の質問は、どうすればこれを達成できるかということです。私はsqlalchemy-migrateを知っていますが、混乱していると言わざるを得ません。既存のデータがどうなるかについては触れられていません。さらに、sqliteはALTER TABLEのサポートを減らしたので、列を削除しようとすると移行はどうなりますか?移行を使用する他のアプローチはありますか?
deployment - sqlalchemy-migrate デプロイメントをサポートする Fabfile は?
私の開発環境では、データベースの移行 (sqlalchemy-migrate を使用) がうまく機能しています。ただし、これを展開プロセスに統合する方法については少し困惑しています。
リモート サーバーで manage.py ファイルを実行するためにファブリックを使用したいのですが、このファイルのリポジトリ値に何を使用すればよいかわかりません。「appname/migrations」と「/usr/local/pylons/appname/env/lib/python2.6/site-packages/appname-05.egg/appname/migrations/」の両方を参照すると、migrate.versioning で失敗します。 exceptions.InvalidRepositoryError
sqlalchemy-migrate とうまく連携する fabfile と manage.py を持っている人はいますか?
sqlalchemy - sqlalchemy-migrateの良い例やチュートリアルはどこにありますか
このスレッドでは、誰かがsqlalchemy-migrateを使用して、sqlalchemyを使用して急速に変化するWebアプリケーションを支援するように指示しました。ただし、新しいデータベーススキーマのCSV列を手動で記述し、最後にそれらをインポートすることで構成される、日曜大工の方法も推奨されました。
問題は、sqlalchemy-migrateの実際の例が見つからないことです。私が見つけたリソースは、せいぜい単一の列を追加するか、列の名前を変更することを決定します。公式ドキュメントには基本的にAPIが記載されており、移行を効果的に使用する方法を理解するのは困難です。ドキュメントからは、移行がデータベースエンジンを変更するのに役立つかどうかさえわかりません。たとえば、SQLiteからmysqlに変更するのに役立つのに対し、DIYソリューションはその仕事に役立ちます。
私は、データベーススキーマのいくつかの重要な変換を行い、移行が本当に便利なツールであることを証明するコードを見たいと思っています。
sqlalchemy-migrateの良い例/チュートリアルはどこにありますか?
ありがとう !
python - sqlalchemy-migrate を使用する価値はありますか?
sqlalchemy (Pylons 内) を使用する Web アプリケーションがあります。データを失うことなく、少なくとも毎日、場合によってはそれ以上、本番バージョンを変更できるように、スキーマを効率的に変更する必要があります。
週末に sqlalchemy-migrate を少し使ってみましたが、悪い印象を受けたと思います。まず、2 つのデータベース エンジン間の移行には役立たないと思います。それはおそらく sqlalchemy だけでできることです。次に、ドキュメントが最新ではないようです。各コマンドでリポジトリ パスを指定するなど、いくつかのコマンド ライン オプションを変更する必要がありました。これは移行のバグである可能性があります。
しかし、最悪なのは「manage.py test」コマンドです。実際にデータベースを変更するだけでなく(この点はドキュメントに明確に示されているため、移行を非難することはできません)、最初の移行スクリプトは単純な愚かなスキーマ移行を行い、アップグレードされダウングレードされたデータベースを元のスキーマとは異なるままにしました。しかし、「manage.pyテスト」は次のような答えを出しました
つまり、スキーマが一貫した状態のままかどうかもチェックしませんでした。では、移行を使用する価値はありますか? S.Lott によって提案されたグッド プラクティスに関連する Do It Yourself メソッドと比較して、利点はありますか? 実際に移行プロセスを簡素化する sqlalchemy-migrate の代替手段はありますか、それとも私は単に移行を先験的に悪い方法で使用しようとしていますか?
どうもありがとう!
python - SqlAlchemyおよびSqlAlchemyを使用したシードデータの管理-移行
PylonsアプリケーションでSqlAlchemyを使用してデータにアクセスし、SqlAlchemy-移行してデータベーススキーマを維持しています。
スキーマ自体の管理には問題なく機能します。ただし、シードデータも移行のような方法で管理したいと思います。たとえば、ProductCategoryテーブルを作成するときに、カテゴリデータをシードするのは理にかなっています。
SqlAlchemy-migrateはこれを直接サポートしていないようです。Pylons + SqlAlchemy + SqlAlchemy-migrateでこれを行うための良いアプローチは何でしょうか?
python - py2exe と sqlalchemy-migrate
小さなデスクトップアプリケーションにpython 2.6、sqlalchemy 0.6を使用しています。また、py2exe と sqlalchemy-migrate を使用しており、exe 内に移行を統合しようとしています。このようにして、ユーザーがアプリケーションを起動すると、データベースが自動的にアップグレードされます。
私のEclipseプロジェクトでmigrateを使用しようとするとうまくいきますが、py2exeを使用してexeでプロジェクト自体をリリースしたいと思います。残念ながら、exeを起動するとエラーが発生しました:
しかし、ディレクトリ db_repository と移行スクリプトは、私のソフトウェアで使用されるすべての python リソースを組み込むために py2exe で使用される「library.zip」内に正しくあります。
sqlalchemy-migrate は、zip 内でリポジトリのディレクトリを検索しないようです。
ここで問題(repository.py):
zip からリポジトリを読み取るには? py2exe によって生成された exe 内で sqlalchemy-migrate を使用しようとした (そして成功した) 人はいますか?
助けてくれてありがとう
python - SQLAlchemy-Migrate を使用して外部キー制約のあるテーブルを作成中にエラーが発生しました
私はpythonでアプリを構築しています。データベース スキーマを追跡するためにsqlalchemy-migrateを使用しています。id と name の 2 つの列を持つテーブル user_category があります。user_category テーブルへの外部キーを持つユーザー テーブルを作成しようとしています。ユーザーテーブルを作成するための私の変更スクリプトは次のとおりです。
「manage.py test」を実行すると、次のエラーが表示されます。
python - Pyramid/SQLAlchemy Web アプリのアップグレード
私は、データベースの永続性のために SQLAlchemy を使用するミル Pylons Pyramid アプリケーションの標準的な実行を持っています。
SQLAlchemy-migrate リポジトリをセットアップして機能させましたが、paster を使用してデータベースをアップグレードおよびダウングレードする機能、または少なくともユーザーに (egg をインストールした後に) アップグレード/ダウングレードさせる何らかの方法が本当に必要です。データベースを必要なバージョンにします。
現在、アプリに組み込まれているため、アプリの起動時にバージョンのアップグレードが行われますが、何が起こっているのかを正確に把握できるように、ユーザーがデータベースを明示的にアップグレードする必要があるものを使用したいと考えています。事前にバックアップを作成します。
どうすればそれについて行くでしょうか?貼り付けるコマンドを追加するにはどうすればよいですか?
ユーザーがアプリケーションをセットアップする方法は次のとおりです。
初めてセットアップするには、データベースのアップグレードまたは一般的なアップグレードを行うには、次のようにします。
または、それらの線に沿った何か。
python - sqlalchemy:「'InstrumentedAttribute' オブジェクトにも 'Comparator' オブジェクトにも属性がありません」エラー
sqlalchemy と sqlalchemy-migrate を使用してデータベースにテーブルを追加しました。データベースにヒットする無関係なコードで単体テストを実行すると、次のエラーが発生します。
sqlalchemy モデルでこのエラーを引き起こすために何ができたでしょうか? コードはlp:~usc-isi/nova/instance_type_metadata のLaunchpad にあり、リビジョン 1109-1115 に変更が加えられています。
nova/db/sqlalchemy/models.pyに 1 つのモデルを追加しました。
そして、ファイル nova/db/sqlalchemy/migrate_repo/versions/019_add_instance_type_metadata.pyを追加しました
python - Python SqlAlchemy-Migrate エラーを追加する ForeignKeyConstraint
既存のテーブル列に外部キー制約を追加しようとしているチェンジセット スクリプトがあります。次のようになります。
変更をテストすると、SQLAlchemy は次のように文句を言います。
スキーマを変更するためにテーブルスワップを行っているようです。他の誰かがこれに遭遇したことがありますか?私は何か間違ったことをしていますか?または回避策はありますか?
編集:私は sqlite でこれをテストしています。ここに私のmanage.pyがあります:
mysql ダイアレクトの使用はうまくいくようです。sqlite に分離できます。