問題タブ [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.

0 投票する
1 に答える
2537 参照

sqlalchemy - sqlalchemy を使用して既存のテーブルに列を追加する

sqlalchemy を使用して既存のテーブルに列を追加する方法はありますか? オプションを見ると、sqlalchemy-migrate が一般的なオプションのようですが、静的な変更を中心に設計されているようです。また、移行をサポートするように DB をセットアップし、メイン アプリケーションの外部でスクリプトを実行して更新する必要もあります。特定のxmlが編集された場合、データを維持するために古い列を削除するのではなく、新しい列を簡単に追加できるようにしたいと考えています。

私はこのデザインを擁護することに興味はありません。方法があるかどうか知りたいだけです。

0 投票する
1 に答える
1516 参照

sqlalchemy - トランザクションで create および sqlalchemy-migrate の Alter ステートメントをラップする方法

sqlalchemy table.create および sqlalchemy-migrate table.rename メソッドに加えて、select ステートメントへの挿入を使用して、db にいくつかの db スキーマの変更を試みています。これらすべてをトランザクションにラップしたいと思います。これを行う方法がわかりません。これは私が試したものです:

しかし、次のエラーが発生します。

(sqlalchemy-migrate column.alter(name='newname') を使用してみましたが、エラーが発生し、トランザクションで機能しないため、データベースが壊れた状態のままになります。また、複数の列の名前を変更する必要があるため、自分のコードをロールすることにしました。)

0 投票する
3 に答える
19300 参照

python - sqlalchemy-migrate を使用して列名変更の移行を記述する方法は?

列名を変更しようとしています。最初の試みはこのスクリプトでした:

migrate.py test私の開発データベース(sqlite)での実行は機能し、アップグレードとダウングレードも機能します。しかし、Heroku のテスト環境 (PostgreSQL 8.3 を使用) にデプロイすると、アップグレードしようとするとトレースが表示されます。要点は次のメッセージです。

次にusers.c.user_id、アップグレード方法で使用しようとしました。それは両方の環境で失敗します。

私が現在使用している回避策は、次のスクリプトです。

モデルをコピーして sqlalchemy-migrate スクリプトに貼り付けることは、既に推奨されている方法です。しかし、この余分な重複は私には少し多すぎます。これをどのように行うべきかは誰でも知っています。バグだと仮定して、回避策をいくつか DRY する方法について提案をお願いします。

0 投票する
2 に答える
501 参照

python - django-evolution に相当する SQLAlchemy はありますか?

私が望むのは、ワークフローが次のようになることだけです。

  1. プロジェクトの INSTALLED_APPS に django_evolution を追加します
  2. ./manage.py syncdb を実行します
  3. プロジェクト内のモデル ファイルに変更を加える
  4. ./manage.py evolve --hint --execute を実行します

これは非常にシンプルで、高度な機能(複数のデータベースなど)をサポートしていませんが、一般的なユースケースである列を追加/削除する方法を知っています.

sqlalchemy-migrate のワークフローは非常に複雑で、ドキュメントで参照されている両方のチュートリアル ( 12 ) は古くなっているか、無関係です。

0 投票する
2 に答える
3573 参照

python - ピラミッド スキーマの移行

Gentoo で "vanilla" Pyramid 1.4 を使用しています。テーブルに変更を加えて、テーブル (およびそのすべてのデータ) を削除せずにコミットしてから再作成したいと考えています。これに対する解決策はスキーマの移行だと聞きました。

長年の Django ユーザーである私は を使用してきましたがdjango-south、現在は Pyramid を使用しており、移行を処理する方法が見つかりません。について読んだことがsqlalchemy-migrateありますが、これは非常に良さそうですが、Pyramid で動作させる方法がわかりません。

Pyramid 1.4 でスキーマの移行を処理する方法はありますか? そして、使用することsqlalchemy-migrateが賢明なオプションである場合、どうすれば Pyramid で動作させることができますか?

乾杯。

0 投票する
1 に答える
517 参照

mysql - SQLAlchemy Migrate を使用して重複する外部キーを削除する

誤って、同じテーブルと列を参照する 2 つの外部キーを追加しました。次のSHOW CREATE TABLE table_aように見えます:

この時点での私の唯一の解決策は、列のすべてのキー/制約を反復処理し、それらを削除してから、カスケード キーをもう一度追加することです。

SQLAlchemy Migrateを使用して非カスケード制約のみを削除する方法はありますか?

0 投票する
0 に答える
1046 参照

sqlalchemy - Sqlalchemy-migrate がデフォルト値でカラムを作成

SQLAlchemy-migrate 0.6.1を使用して、mysql データベースのバージョン管理を処理しています。リンクはドキュメントへのリンクです。しかし、彼らは 0.6.1 のドキュメントを削除したようです。

次のようなテーブルに外部キー制約を持つ新しい列を追加しようとしています:

これは機能しますが、mysql は server_default をデフォルト値として保存し、それをすべての新しいレコードに追加します。私の場合、このデフォルト値は変わりません。

列にデフォルトを設定したいのですが、mysql にデフォルトとして保存したくありません。

ドキュメントでこれを見つけました:

しかし、それは sqlalchemy-migrate のより新しいバージョンに追加されていると思われます。sqlalchemy-migrate の 0.6.1 バージョンでこれが可能かどうかは誰にもわかりませんか?

0 投票する
1 に答える
547 参照

python - SqlAlchemyの奇妙なエラー-列タイプBigIntegerのcolumn.copy()で移行します。

状況は少し単純化されています。sqlalchemy-migrate用の2つの移行ファイルがあります。

Firstテーブルを作成し、それvolume_usage_cacheを自動ロードし、その列のコピーを作成して印刷します。

そして、私は私が期待したものをログに記録します:

しかし、Second移行ファイル(後に実行されるFirst)に列のコピーを作成すると、次のようになります。

別の結果が得られます:

なぜcurr_write_bytes列にNullTypeがあるのですか?

0 投票する
1 に答える
3307 参照

python - Flask データベースの問題

このチュートリアルをガイドラインとして使用しています。http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database

複数の商品をまとめられるカテゴリーが欲しいです。彼が複数の投稿を持つユーザーを持っている方法に似ています。

Pythonインタープリターを開いてカテゴリを作成しようとすると

このエラーが発生します

したがって、後方参照に問題があります。チュートリアル (私は彼のコードで試しました) で、彼は同様の構文で User を作成することができます。

彼のすべてのファイルを使用して、新しいデータベースを作成して移行しようとしたところ、同じエラーが発生しました。

ここに私のmodels.pyファイルがあります:

0 投票する
1 に答える
10364 参照

python - sqlalchemy-migrate を使用して列の型を可変文字から整数に変更する方法

sqlalchemy-migrate を使用して、Postgre SQL データベースのテーブルの列の 1 つの型を変更しています。私が使用しているアップグレードスクリプトは次のとおりです。

アップグレード部分は機能しているように見えますが、ダウングレードは常に次のエラーで失敗します:

ここで、プレーン SQL を使用していた場合ALTER TABLE courses ALTER COLUMN number TYPE INTEGER USING number::numeric、列の型を からcharacter varyingに戻すために使用できますintegerが、sqlalchemy-migrate を使用してそれを達成する方法がわかりません。

sqlalchemy を強制的にUSING number::numericALTERに含める方法はありますか? または、上に投稿したエラーを回避する別の方法はありますか?

私はあなたの助けに感謝します。