sql >> データベース >  >> RDS >> Mysql

Web2py –SQLiteからMySQLへの移行

    最近、SQLiteバックエンドを備えたApacheサーバーでホストされているweb2pyベースのCRMアプリをMySQLに変換する必要がありました。以下は私のために働いたステップです。フォローしたい場合に使用するサンプルアプリケーションを作成しました。ここからすべてのファイルをダウンロードできます。

    注意:Unix環境でweb2pyバージョン2.4.7を使用しています。開始する前に、システムにSQLiteがインストールされていることを確認してください。これはpip、pip install sqliteでインストールできます 、またはhttp://sqlite.org/download.htmlでバイナリファイルを取得できます。 MySQLもインストールする必要があります。サポートが必要な場合は、こちらのチュートリアルに従ってください。

    現在のデータベースには、すべてのデフォルトのweb2pyテーブルとユーザーがあります フィールドがidのテーブル 、 start_date 、および end_date

    db.define_table(
        'users',
        Field('start_date','string'), 
        Field('end_date','string')
    )
    

    このコードは、web2pyDAL構文に従います。テーブルには30,000行のデータがあります。


    データクレンジング

    アプリケーションの最新のSQLiteデータベースをダウンロードします。デフォルトでは、 storage.sqliteという名前のファイルです。 「/web2py/ Applications / /databases/」フォルダーの下。ダウンロードするには、ターミナル内で次のコマンドを実行して、データベースダンプを作成します。

    $ sqlite3 storage.sqlite .dump > output_before.sql
    

    テキストエディタを使用して、 output_before.sqlを編集します ファイル:

    • PRAGMAで始まるすべての行を削除します 、BEGIN TRANSACTIONCREATE TABLE およびCOMMIT
    • sqlite_sequenceに関連するすべての行を削除します テーブル(つまり、DELETE FROM sqlite_sequence;
    • すべてのINSERT INTO "<table_name>" VALUES(...) ステートメント、二重引用符を置き換えます(" "<table_name>の前後 バックティック付き(` ` )-例: INSERT INTO `table_name` VALUES(...)

    最後に、ファイルを output_after.sqlとして保存します デスクトップ上。



    MySQLのセットアップ

    リモートサーバー上にMySQLデータベースを作成します。データベース名、ユーザー名、パスワードをメモしてください。テスト用にデータベースをローカルに設定することもできます。これは、このチュートリアルで使用します:

    $ mysql.server start
    $ mysql -u root -p
    Enter password:
    mysql> create database migration;
    Query OK, 1 row affected (0.03 sec)
    mysql> exit;
    

    MySQLを使用するようにアプリケーションを構成します。 web2py管理者を起動します。 db.pyを編集します :

    db = DAL('mysql://<mysql_user>:<mysql_password>@localhost/<mysql_database>')
    

    ファイルを保存します。

    web2pyがMySQLデータベースを初期化できるようにします:

    • /web2py/applications/<your_application>/databases/の内容をバックアップします フォルダ。次に、フォルダの内容を削除します。
    • web2py管理者に戻ります。 「データベース管理」ボタンをクリックして、ローカルのMySQLデータベースにテーブルを作成します。

    ターミナルでMySQLデータベースを起動して、空のテーブルがデータベースに追加されたことを確認します。



    データを追加

    output.sqlを保存した場所に移動します (デスクトップである必要があります)次に、次のコマンドを実行してMySQLにデータを追加します。

    $ mysql -u root migration < output_after.sql
    

    完全に実行するには数分かかります。

    web2py管理者内で、データベースとアプリケーションをチェックして、新しいデータにアクセスできることを確認します。



    1. PostgreSQLでのpg_sleep_for()のしくみ

    2. アクティビティにカスタムアダプタを追加して、リストをアクティビティに表示するにはどうすればよいですか?

    3. SQLで大量のデータを効率的に挿入

    4. 行の目標、パート3:アンチ結合