問題タブ [database-migration]
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.
database - Qt4 を使用したデータベースの移行 (スキーマの変更)
Ruby on Rails から、データベースの移行を行うための快適で非常に管理しやすい方法について学びました。
Qt4でそのようなケースをどのように処理しますか? Rails のソリューションのように複雑にする必要はありません。SQL とコード スニペットを実行して、データのバージョン リストを上下に移動しても問題ありません。
少しグーグルで調べましたが、標準的な解決策はないようです。以前に頭をかいた人は誰もいないようです。誰もがそれを行う方法について独自のアイデアを実装しているようです。
標準的なソリューションに興味がある、または取り組んでいて、その取り組みを共有したい人はいますか? それとも、機能する実装がありますか? Railsのテーブルのようなものをinformation_schema
用意し、アプリケーションでウィザードを実行してデータベースをアップグレードまたはダウングレードする (そして、最初にバックアップ/ダンプを実行することを提案する) か、別のオプションとして、ウィザードなしの移行、おそらく便利なプログレスバー。
ruby-on-rails - 移行せずに schema_migration テーブルを新しいバージョンに移動しますか?
私の移行のほとんどは、タイムスタンプではなく番号によるものですが、そのうちの 5 つまたは 6 つ (最新のもの) はタイムスタンプ付きです。これらを番号ベースに移行したいので、移行テーブルを適切な番号に転送したいと考えています。実際に移行を実行せずにテーブルを強制的に更新するにはどうすればよいですか? または、5 または 6 前 (タイムスタンプの前) に移行してから、数値を使用して再度移行する必要がありますか?
.net - データ移行の見積もりを支援する
私たちのクライアントには、ASP 1.1で構築され、後で2.0にアップグレードされた完全にカスタムのCMSがあります。データベースには200を超えるテーブルがありますが、残念ながら、ASPコードまたはデータベースのドキュメントはありません。元の開発者は質問することができず、私の会社の誰もセットアップに精通していません。
データベーステーブルの大部分にはタイムスタンプ列がないため、検査だけで使用されているテーブルと使用されていないテーブルを判別することは困難です。タスクの複雑さに加えて、CMSのポータルサイトごとに、個々のデータベーステーブルを使用するカスタム機能が開発されており、場合によっては、個々のクライアントサイトのデータを処理するためのストアドプロシージャが開発されています。
このプロジェクトに取り組んでいた元の開発者がいなくなり、思いがけず私の皿に載せられました。各モジュールおよび各クライアントサイトのデータを含む、既存のCMSのすべてのデータを、開発中のカスタムモジュールを含むDotNetNukeインストールに移動する必要があります。私が手渡した見積もりは3週間です。
誰かが以前にそのようなタスクを試みたことがある場合:これは3週間で実行可能ですか?私はこれまでこのような大規模なデータ移行を試みたことがありません。戦略に関する支援があれば役立つでしょう。
sql-server - ストアドプロシージャ内からの新しいデータベースの作成
従業員が辞めたため、自分の専門分野外のプロジェクトが与えられました。
私は、各顧客がデータベースの独自のコピーを持っている製品を持っています。データベースを作成するためのUI(ライセンス、基本的な情報収集など)は外部委託されているため、呼び出すことができる単一のストアドプロシージャを用意し、いくつかのパラメーターを提供して、SPにデータベースを作成してもらいたいと考えていました。データベースを作成するためのスクリプトがありますが、実際にスクリプトを実行するための最良の方法がわかりません。
私が見つけたところによると、これはSPが簡単に実行できる範囲外のようです。この種のプログラムフローを処理するための「ベストプラクティス」はありますか?
database - アップグレードまたは移行後にデータベース スキーマが正しいかどうかを確認する良い方法はありますか?
あるデータベース バージョンから別のバージョンにアップグレードしている顧客がいます (具体的には、Oracle 9i から Oracle 10g または 11g に)。あるケースでは、お客様が古いデータベースをエクスポートして新しいデータベースにインポートしましたが、何らかの理由でインデックスと制約が作成されませんでした。彼らはインポート プロセスをスピードアップするために意図的にこれを行った可能性がありますが、その理由はまだ調査中です。
本当の問題は、インポート後にデータベースの構造が完全であることを確認できる簡単な方法があるかどうかです。構造に対して実行できるチェックサムのようなものはありますか? すべてのテーブル、インデックス、エイリアス、ビュー、シーケンスなどが存在するかどうかを確認するために一連のクエリを実行できることはわかっていますが、これを記述して維持するのはおそらく難しいでしょう。
アップデート
商用および/またはGUIツールを使用することを示唆する回答に感謝しますが、製品にパッケージ化できる無料のものが本当に必要です. また、お客様が任意の環境 (unix、linux、windows) で実行できるように、コマンド ラインまたはスクリプト駆動である必要があります。
sql - 重複を含むMySQLテーブルをUNIQUE制約を含む別のテーブルに移行するための最良の方法
私はデータ移行のための最良のアプローチを考え出そうとしています。
次のようなテーブルからいくつかのデータ(〜8000行)を移行しています:
このようなテーブルに:
主キーを保持することは重要ではありません。
「場所」の住所は何度も重複しています。ほとんどの場合、緯度と経度は同じです。ただし、場合によっては、addrの値は同じで、緯度と経度の値が異なる行があります。
最終的なlocation2テーブルには、location内の一意のaddrエントリごとに1つのエントリが必要です。緯度/経度に複数の可能な値がある場合は、最新の(最大のlocation_id)を使用する必要があります。
これを行うためのプロシージャを作成しましたが、addrが同じで、緯度/経度が異なる行は好きではありません。
これを行う良い方法はありますか?私はあきらめて、それを行うための小さなPHPプログラムを書きたいと思っていますが、可能であれば、正しいSQLの方法を学びたいと思っています。
おそらく、最初のテーブルから適切なSELECTを見つける必要があり、次を使用できます。
データを移行します。
ありがとう!
.net - データベース スキーマの変更の処理
私はアプリを構築するかなり初期の段階にあり、1000 年代に販売されることを期待しています。数百になる可能性が高いですが、いずれにせよ、データベース スキーマの変更について十分な規模の頭痛の種を引き起こすには十分すぎるほどです。
多くのお客様が、私が構築しているアプリを Web サーバーでセルフホスティングし、サーバーにインストールされた余分なビットがうまくいかず、常に数が存在するため、私はむしろ Windows / .net / SQL サーバー環境に制限されています。苦情の/結果として失われたビジネス。Pythonで実行されるため、sqlalchemyは廃止されました。
私が求めているのは、アプリケーションのバージョン間で簡単に移行できるツールです。migrator.net を見つけて、以前に使用したことはありますが、開発チームは年に 1 度しか作業していないようで、実際のプロジェクトではないように見えるため、実際に使用したことはありません。
どのような代替アプローチが利用可能ですか?
更新 これを継続的インテグレーション環境で使用できるようにしたいということを忘れていたので、データ男とSQL比較は素晴らしいGUIツールですが、私は本当に自動化しています。
sql-server-2005 - SQL Server 2005をOracleに移動しますか?
SQLServer2005データベースをOracleに移動したい。どうやってやるの?私が従いたいステップは何ですか?このためのツールはありますか?
ruby-on-rails - Ruby on Rails の場合、同じ DBMS または別の DBMS を持つ新しい空の DB に切り替えるにはどうすればよいですか?
データを移行する必要がない場合は、編集するだけでよいようですdatabase.yml
1) データが 0 の新しいデータベースを使用するには、3 行目を次のように変更します。
そして、rake db:create
そしてrake db:migrate
今、データがゼロの真新しいデータベースがありますか?
2) SQLite を使用して指定されていた場合は、この投稿の冒頭部分にある MySQL の説明に変更するだけで済みます。また、 と を実行するrake db:create
と、操作rake db:migrate
する新しいデータベースができて、MySQL ですか?
3) Rails 3 には db/schema.rb があります。rake db:migrate
30 個の移行ファイルがある場合は 30 回の移行が必要になりますが、schema.rb を使用すると 1 ステップでデータベース スキーマに到達できますか?
4)ファイル内に、古いデータベースを指す、または別の DBMS を指すその他development_02
の などを作成できると思いますが、必ず実行するようにしてください。database.yml
?
ruby-on-rails - db migrations ロールバックの有用性
多くの人がデータベースの移行、特にロールバックの可能性について話しています。
db と model のスキーマはアプリケーション ロジック (MVC) と密接に接続されているため、まったく役立つかどうかは疑問です。
いくつかの移行のロールバックを行ったとします。そして何 ?アプリケーションのロジックは db に完全に依存しているため、アプリケーションは機能しません。
データベース移行のロールバック機能の使用例は何ですか?
更新 1
主な質問
コードを変更する必要があるのに、ロールバックが機能として表示されるのはなぜですか?
「add_another_field_to_table」のような移行は作成しません。代わりに、各移行ファイルは DB 内の各テーブルを完全に記述します。DB で何かを変更する必要がある場合は、移行ファイルを変更するだけで、ロールバックはしません。
実際、移行をロールバックしても、バージョン管理のように元に戻すことはできません。変更が計画され、ロールバックが何も得られないとき、私は多くの仕事をしています。