0

非定型の変換の問題に直面しています。約 10 年前、私は大規模なサイトを ASP でコーディングしました。何年にもわたって、これは ASP.NET に変わりましたが、同じデータベースを保持していました。

Django でサイトを再作成し、すべてのコア データをコピーしましたが、ホストのアカウントをキャンセルする前に、データの長期バックアップがあることを確認する必要があります。何かが足りないことがわかりました。ローカルコピーからコピーできます。

さらに複雑なことに、私はもう Windows を持っていません。しばらく前に、すべてのマシンで Ubuntu に移行しました。ホストにバックアップを送信するように依頼することはできましたが、MSSQL を備えたマシンにアクセスできないため、必要に応じてそれを使用することはできませんでした。

だから私は何かを探しています:

db = {}
for table in database:
    db[table.name] = [row for row in table]

そして、db後で使用するためにどこかでシリアル化できます...しかし、テーブルの反復はどのように行うのですか? これをすべて行う簡単な方法はありますか?MSSQL はクロスプラットフォームの SQLDump (データを含む) を実行できますか?

以前の MSSQL では pymssql を使用しましたが、テーブルを反復して行をコピーする方法がわかりません (理想的には列ヘッダーを使用して、データが何であるかを知ることができます)。私は多くのコードを探しているわけではありませんが、正しい方向に突き刺す必要があります。

4

4 に答える 4

1

あなたが JSON と言ったのは知っていますが、SQL スクリプトを生成して XML で全体のダンプを実行するのは非常に簡単です。

SELECT  REPLACE(REPLACE('SELECT * FROM {TABLE_SCHEMA}.{TABLE_NAME} FOR XML RAW', '{TABLE_SCHEMA}',
                        QUOTENAME(TABLE_SCHEMA)), '{TABLE_NAME}', QUOTENAME(TABLE_NAME))
FROM    INFORMATION_SCHEMA.TABLES
WHERE   TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_SCHEMA
       ,TABLE_NAME
于 2010-03-31T15:18:52.917 に答える
1

Python から SQL Server に接続する必要があるときは、ADOdb Python モジュールが気に入りました。簡単なチュートリアル/例へのリンクは次のとおりです: http://phplens.com/lens/adodb/adodb-py-docs.htm#tutorial

于 2010-03-31T12:19:27.407 に答える
1

sysobjects テーブルと syscolumns テーブルを見てください。また試してください:

SELECT * FROM sysobjects WHERE name LIKE 'sys%'

興味のある他のメタテーブルを見つけるために。これらのテーブルと新しい SQL2005 対応テーブルの詳細については、こちらを参照してください。

于 2010-03-31T12:03:14.043 に答える
0

あなたのコーディングアプローチの余談として-私は言います:

  • Windowsで評価を使用して仮想マシンをセットアップする
  • その上にSQLサーバーの評価を置きます
  • データを復元する
  • red-gateの優れた db スクリプト ツールを使用して手動または自動でチェックし、データとスキーマをスクリプト化します。
  • 問題がなければ、(a) 適切なバックアップと (b) スクリプト化された出力が得られます。
于 2010-03-31T12:17:48.177 に答える