問題タブ [fluent-migrator]
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.
.net - FluentMigratorを使用してROWVERSION/TIMESTAMPデータ型列を設定するにはどうすればよいですか?
楽観的同時実行制御のためにSQLServerテーブルのROWVERSION
(または)データ型を使用しようとしています。TIMESTAMP
私のテーブルはFluentMigratorを使用してセットアップされており、必要なデータ型を取得する方法がわかりません。Microsoftの記事にROWVERSION
よると、null不可能なROWVERSION
列は、意味的にはbinary(8)列と同等です。null許容ROWVERSION
データ型はvarbinary(8)と同等です。
これが例であり、私が得ることができる限り近くにあります...
.WithColumn("RowVersion").AsBinary(8).NotNullable();
私が理解できない線です....AsRowversion
または.AsTimestamp
オプションはありません。
前もって感謝します!
c# - FluentMigratorの個別のテストデータ
テストデータ(環境ごとに異なる可能性があります)を実際のデータベース作成から分離したいと思います。その目的でプロファイル
を
使用できることは知っていますが、私が理解しているように、他の移行の最後に一度プロファイルを呼び出します。
私が欲しいのは、移行バージョンに基づいてそれらを持っていることです、それで:
- MigrationXはテーブル「Users」を作成します
- テストデータは「ユーザー」に個別に挿入されます
どうすればいいですか?
oracle11g - fluentmigrator を使用して Oracle でシーケンスを作成する
FluentMigrator と Oracle は初めてです。移行スクリプトで Msql サーバー、Postgres、および Oracle をサポートしようとしています。
NHibernate は Oracle でシーケンスを使用し、他の 2 つで ID を使用するため、シーケンスを追加する必要があります。
これにより、次のようになります。
ソースを見ると、スキーマが必要です (GenericGenerator.cs の 360 行目を参照)。しかし、このコンテキストでのスキーマは何ですか?
database-migration - 長時間実行されるデータベース移行スクリプトを使用する
最小限の労力でデータベース スキーマを最新の状態に保つ方法として、FluentMigratorを試しています。
現在作成中のリリースでは、データベース スクリプトを実行して、既存のデータの多数の行に単純な変更を加える必要があります (21,000,000 行の約 2% を更新する必要があります)。
1 回のトランザクションで更新するにはデータが多すぎるため (トランザクション ログがいっぱいになり、スクリプトが中止されます)、WHILE ループを使用してテーブルを反復処理し、一度に 10,000 行を更新し、各バッチを個別のトランザクションで更新します。これは機能し、完了するまでに約 15 分かかります。
スクリプトが完成したので、FluentMigrator に統合しようとしています。
FluentMigrator は、1 つのトランザクションで 1 つのバッチのすべての移行を実行するようです。
FM で各移行を個別のトランザクションで実行するにはどうすればよいですか?
特定の移行にトランザクションを使用しないように FM に指示できますか?
installation - 複数のプラットフォーム用の製品インストーラーでの流暢な移行
私たちは外部の有料クライアント向けの製品を開発しており (つまり、私たちは管理範囲内の環境向けの製品のみを生産する内部 IT 部門ではありません)、現在、バックエンドとして SQL Server 2005+ と Oracle 10.2+ の両方をサポートする必要があります。私たちは CI とビルドのために Wix で TeamCity を使用します。ビルドはテスト チームに送信され、最終的にはテストが承認されたときにクライアントに送信されます。現在、データベースをアップグレードするための SQL スクリプトは無数にあります。最も基本的な形式では、DDL スクリプトとデータ スクリプト (バージョンごと、プラットフォームごと) が存在する場合がありますが、ストアド プロシージャを含むスクリプトやクライアント固有のスクリプトが存在する場合もあります。クライアントがアップグレードするバージョンの数 (たとえば、2.0 から 2.7) によっては、20 ものスクリプトを正しい順序で実行する必要がある場合があります。
明らかに人的ミスの余地があり、現在ダウングレードする方法はありません。スクリプトの自動バージョン番号付けの欠陥のおかげです (そして、DB がどのスクリプトが実行されたかを記録しているかなりばかげた方法です)、そうではありません。 DB で実行されたものを常にクリアします。明らかに、これは素晴らしい状況ではありません。
私はFluent Migratorまたは同様のものの使用を調査しています-Fluentである必要はありません-プロセス全体にもう少し順序とバージョン管理を導入しようとしていますが、使用方法に関する記事や例はたくさんありますCI では、移行を MSI インストーラーなどに統合することについては何も見つかりません。
私がやりたいのは、全体的なインストーラーの一部としてそれを使用するか、データベースのアップグレード/ダウングレード専用のインストーラーを作成することです。クライアント固有の移行はさておき、このようなインストーラーからユニバーサル移行を実行することは可能ですか? もしそうなら、1 つのインストーラーで複数のプラットフォームを対象にする (つまり、SQL と Oracle の両方の移行を利用可能にし、実行時にどちらを使用するかを検討する) ことはどうでしょうか?
私の計画は、移行を単一のアセンブリに保持し (この記事の説明と同様)、インストーラーが作成されたときに焼き付けられた情報に基づいて、適切なアップ/ダウン マイグレーションをインストーラーに実行させることです。それができると仮定すると、これは賢明な解決策のように聞こえますか、それとも私が気付いていないこれらすべてを管理するより良い方法はありますか?
どうもありがとう
スティーブ
nuget-package - VS2012 Express for web - FluentMigrator.Tools 1.0.3.0 - migrate.exe はどこにありますか?
VS Express for Web を使用しています。プロジェクトに FluentMigrator.Tools 1.0.3.0 を追加しました。Migrate.exe はどこにありますか? (プロジェクトをビルドした後) bin/Debug 内でそれを探していましたが、どこにもありません。
FluentMigrator.Tools パッケージに含まれる他の dll-s も、プロジェクトの参照から欠落しています。
何か不足していますか?そのmigrate.exeはどこにありますか?
わかりました、Nuget\Cache から取得できることはわかっていますが、これらのツールがプロジェクトにアタッチされ、ビルド後に bin/Debug または Release フォルダーで見つけることができ、出荷できるのではないかと思います。バイナリで。
c# - fluentmigrator を使用して行ごとに新しい値で行データを更新する
fluentmigrator を使用して新しい列をテーブルに追加しています。次に、テーブルの各行をその列の一意の値で更新したいと考えています。
現在私が使用するとき:
すべての行に同じ値を与えます。
各行に対してそのメソッドを確実に呼び出すにはどうすればよいですか?
sql-server-2012 - fluentmigratorはSQLServer2012で動作しますか?
fluentmigratorの現在のイテレーションはSQLServer2012で機能しますか?サポートされているデータベースの下にリストされていません。
database-migration - データベース移行後にスキーマを検証する
次の(潜在的な)状況に対して誰かが良い解決策を持っていますか?
fluentmigratorなどのデータベース移行ツールを使用して、それ自体が完全に有効な移行を追加しますが、実行時まで検出されない方法で他のデータベースアーティファクトを破壊します。たとえば、既存のストアドプロシージャの本体で参照されている列を削除します。
移行後に結果のスキーマ全体を検証できるようにする必要があります。これを行うための最良かつ最も効率的な方法は何ですか?
fluent-migrator - 移行は Fluent Migrator でデータベースの種類をどのように検出しますか?
Fluent Migrator を使用して、Migration クラス メソッドは移行中のデータベースの性質をどのように検出しますか? それが SQLite なのか、それとも何か他のものなのかを知る必要があります。
MigratorDotNetMigration というレガシー クラスがあることは知っていますが、Fluent Migrator の機能を放棄したくありません。これは、私が取り組んでいるレガシー マイグレーションではありません。