問題タブ [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.
sql-server - 別のマシンでSQL2000データベースをSQL2005に移行します
私はこのアプリの移行で数日間頭を悩ませてきました。私が持っているのは、SMSQLServer2005を実行しているWindows2003Serverにアップグレードされている古いMSSQLServer2000でサポートされているアプリケーションです。SQLServerについてはほとんど知りませんが、明らかに十分ではありません。
[データベース]->[データベース]->[すべてのタスク]->[データベースのバックアップ...]に移動し、[フル]を選択してファイルを保存することにより、古いサーバー上のデータベースをバックアップしてみました。そのバックアップファイルを新しいサーバーに移動して復元しようとしましたが、古いサーバー上の場所で[Database].mdfファイルを探していると文句を言いました。
そこで、データのエクスポートを試み、ローカルのSQL 2000データベースを選択し、それを別のマシンの新しいSQL 2005データベースにポイントしました。最後まで到達し、テーブルの1つがどのようになっているかについて不平を言って死にました。参加しています。
次に、2000ボックスで「GenerateSQL」コマンドを実行し、SQL2005で実行してみました。SQLServer2005でサポートされなくなった古い*=構文を使用した外部結合が多数あるようです。ベンダーデータベースは、これらのテーブルを設定したときの彼らの本当の意図が何であったかを知りません。
このデータベースの移行を試みる他の方法はありますか?
.net - .NET データベース移行ツールキット
私の現在のお気に入りのプロジェクトは、言語に依存しないデータベース移行ライブラリ ( Google Codeの Wizardby ) です。これは ActiveRecord Migrations にかなり影響を受けていますが、いくつかの優れた点があります。たとえば、いくつかの基本的な「型推論」を行うため、FK 列の型を指定する必要はありません。また、「アップグレード」シーケンスのみを指定して「ダウングレード」スクリプトを生成するのにも十分スマートです。移行は特別な DSL で記述されていますが、このツールは主に .NET プロジェクトを対象としています。また、データベース プラットフォームに依存しません。
構文の簡単な概要を次に示します。
他にも移行ライブラリがあることは知っていますが、それはペット プロジェクトです。
問題は、データベース移行ツールキットに一般的にどのような機能を期待しているのか、この特定の子犬について構文的に何を言えるのかということです。
deployment - データベースの移行: ビルド スクリプトで管理するか、アプリの起動時に自動で管理しますか?
私は新しい Web アプリの展開システムを開発中ですが、データベースの移行を管理するプロセスの最適なポイントはどこにあるのか疑問に思っています (移行をどのように行うかという問題は、まったく別の問題です)。
次の 2 つの方法があるようです。
- コマンド ラインから手動で実行するか、自動展開/ビルド プロセスの一部として実行できる移行スクリプトを使用します。
- アプリの起動時に移行を実行します (私は ASP.NET を使用しているため、長時間のユーザー要求を引き起こすことなく簡単に実行できます)。
これらのアプローチに関する提案/洞察/経験はありますか? 他の提案はありますか?
#1 がより魅力的である理由がわかります。これにより、DB がいつ更新されるかを完全に制御できます。しかし、私は #2 がとても気に入っています。なぜなら、デプロイ間をすばやく繰り返すことができ、手動プロセスを削減できるからです。#2 を開発マシンで使用して、イテレーションをさらに高速化することもできます。うーん、両方あって良かったかな…と思い始めました。
sql-server - 複数のデータベースを更新する移行を管理するためのベスト プラクティスは?
私のチームは、Martin Fowler、Pramod Sadalage などによって説明されているように、データベース移行/データベース リファクタリングを管理するためのツールとプロセスを評価しています。アル。自動化された反復可能でテスト可能なプロセスに関心があるため、展開するたびに SQL Compare を手動で実行するような手法には関心がありません。現在、継続的インテグレーションのために CruiseControl.NET を使用しています。
私たちの実稼働環境には複数の SQL Server 2000 データベース サーバーがあり、それらの間でレプリケーションが行われています。したがって、移行により、ソース データベース サーバーとターゲット データベース サーバーの両方でスキーマが変更されます。
このような移行を dbdeploy などのツールで実行するには、サーバーの 1 つに対して移行を実行する必要があり、他のサーバーをリンク サーバーとして追加する必要があるようです。したがって、メイン サーバーに対して実行される 1 つのスクリプトは、任意のリンク サーバーに対して DDL を実行できます。
私の質問はこれです: このアプローチはベスト プラクティスと見なされますか、それとも複数のデータベース サーバーに触れる移行を適用するためのより良い手法はありますか?
sql-server - 本番データベースに加えられたスキーマの変更を移行管理プロセスにマージするにはどうすればよいですか?
私のチームは、データベースの移行を管理するために dbdeploy を評価しています。私が理解しているように、移行を使用するには、少しプロセスの規律が必要です。つまり、すべての変更に対して移行を記述し、本番環境に移行するには、ローカルから開発、テスト、本番に移行する必要があります。
場合によっては、本番 DBA チームが本番環境に直接スキーマの変更を加えることがあります。データベースの現在の開発バージョンに対して変更を加えるために新しい移行を作成する場合、その移行は、移行が本番環境にデプロイされるまで、変更が既に含まれているスキーマに対してテストされることはありません。これは私に関係があります。
もう 1 つのオプションは、ベースライン スキーマを直接変更してから、すべての環境 (ローカル、開発、テスト、ステージ) でデータベースを再構築することです。新しいスキーマによって 1 つまたは複数の移行が中断される可能性があるため、このアプローチには懸念があります。
現在、人々はこのシナリオをどのように処理していますか?
.net - エンドユーザー向けに展開されたデータベースを自動的にアップグレードする方法
開発者向けのデータベースをアップグレードする方法などに関するかなりの数の質問を読みましたが、 migratordotnetなどを使用することに傾いていますが、MSBuild や NAnt などでアップグレードを実行する必要があるようです。これらは、エンドユーザーがインストールすることを期待すべきものではありません。
理想的には、ユーザーが新しいバージョンのアプリをインストールして起動し、背後ですべてを処理するプロセスである必要があります。プロセスにかかる時間に応じて、進行状況バーが表示される場合と表示されない場合があり、その後、アプリは通常、sql、msbuild、リレーショナル データベース、またはリモートで技術的に聞こえるものがあることに気付かずに、幸せに使用されます。
その他の雑多な情報:
xcopy がインストールされている SQLCE。
ほとんどの場合、大きすぎてはならない単一ユーザー データベース。
リリースはかなり頻繁に行われ、要求された機能に対するユーザーの入力を通じてプログラムが進化します。
最初のリリースはまだ完了していないので、現在のデータについて心配する必要はありません。最初のリリースとその後のリリースのための簡単なプロセスが必要です (エンドユーザーにとって、できれば私にとっても!)。
LINQ to SQL を ORM として使用します。(最初にデータベースをアップグレードして
から、SQLMetal を実行して
クラスを再生成しますか?)
TDD を (初めて) 実行し、アップグレードのテストを自動化する方法を考えています。
Visual C# Express であるため、VS プラグインはありません。
編集:
MSBuild には VS だけでなく .NET Framework が付属していると思います。そのため、これは問題ではなく、migratordotnet を使用して msbuild にシェルアウトするだけでよいと思います。必要に応じて、コンソール出力をリダイレクトし、ナイーブな文字列解析を行って進捗情報を取得することもできますが、単なるマーキー プログレス バーではなく、実際の進捗状況を表示するのに十分な時間がかかる場合は、それに頼ります。
mysql - MS SQL Express を使用してログイン: 成功! Migration Toolkit へのログイン: 失敗しますか?
(MySQL フォーラムでの同じ投稿からの応答がないので、ここで幸運を祈ります)
友人のために MS SQL データベースを移行しようとしています。マシンへの物理的なアクセス権も、管理者アクセス権もありません。読み取り/書き込みユーザーだけです。
XP で「SQL Server Management Express」を使用すると、IP/ユーザー/パスワードを使用して簡単にログインできます。テーブルを参照したり、クエリを実行したりできます。簡単。
移行ツールキットを起動し、MS SQL を選択して接続しようとすると、次のエラーが表示されます。
---- ソース データベースに接続し、スキーマ名を取得しています。JDBC ドライバーを初期化しています ... ドライバー クラス MS SQL JDBC ドライバー 接続を開いています ... 接続 jdbc:jtds:sqlserver://MYSERVERIP:1433/MYDATABASE;user=MYUSERNAME;password=MYPASSWORD;charset=utf-8;domain= リスト個のスキーマ名を取得できませんでした (エラー: 0)。ReverseEngineeringMssql.getSchemata : ユーザー 'MYUSERNAME' のログインに失敗しました。詳細: net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365) net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781) net.sourceforge.jtds.jdbc.TdsCore.nextToken( TdsCore.java:2224) net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:599) net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:331) net.sourceforge.jtds.jdbc.ConnectionJDBC3 .(ConnectionJDBC3.java:50) ネット。
何か案は?ログインの詳細を 3 回確認しました。サイコロはありません。ドライバーが不足していますか? サーバーの設定がおかしくないですか?ここからどこへ行くべきかわかりません。
前もって感謝します。
更新: dbVisualizer(JDBCも使用)をダウンロードして実行し、同じSQL認証情報を使用して正常に接続しました...これは、サーバーではなく、派手なMSFTが行われていないことを示しています。
とはいえ、今後どうするかはまだ未定ですが…
java - JavaResultSet制限の回避策
データベースの移行作業を行っています。MSSQLのデータベースをMySqlデータベースにコピーする必要があります。テーブル構造をMSSQLからMySqlデータベースにコピーするための小さなJavaユーティリティを思い付くことができました。ここで、すべてのデータをMSSQLからMySqlにコピーする必要があります。Javaでresultsetを使用してテーブルからすべてのデータを取得しようとしましたが、データのごく一部しかフェッチできませんでした。テーブルから結果セット、または私が使用できる可能性のある他の同様の構造にすべてのデータを取得して、同じデータをmysqlDbに挿入するための代替ソリューションはありますか?テーブルには25,00,000を超えるレコードがあります。
sql-server-2008 - SQL Server 2000 から SQL Server 2008 への移行
SQL Server 2000 データベースを SQL Server 2008 に移行する必要があり、この移行のための一般的な戦略を策定する必要があります。これを達成するために実行する必要があるアクティビティの順序付きリストが必要です。
drupal - Drupal6-移行後の権限の問題
私のデータベースは非常に大きく、ウォッチドッグやアクセスログなどのテーブルに大量のテストデータがあり、アップロードで問題が発生していました。それから私はデータベースに飛び込み、テーブルを意地悪に切り捨て始めました。新しい本番サーバーで問題が発生したため、もう少し慎重に使用する必要があると考えています。
主な問題は、「権限」でコンテンツにアクセスするように設定されていても、匿名ユーザーはコンテンツを表示できないことです。また、移行前は間違いなくコンテンツを表示できたので、ハッキングしたテーブルの1つである必要がありました。他のすべてがスムーズに実行されているためです。
どのテーブルが切り捨てられた場合、このような症状が発生する可能性があるかを誰かが知っていますか?
更新: -ユーザー0がいることを確認しました-おそらく同じ症状が発生するでしょう。-問題は解決しません。