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

dev / prodでMysqlを使用し、テストでH2を使用します

    役立つと思われるトリックがいくつかあります。

    まず、MySQLの/*! */ 表記法を使用すると、MySQLが従うコードを追加できますが、他のDBは無視します(例:

    )。
    create table Users (
      id bigint not null auto_increment,
      name varchar(40)
    ) /*! engine=InnoDB */
    

    これは特効薬ではありませんが、MySQLとH2の構文の違いについて説明します。これはMySQL主義であるため、他のデータベースには役立ちませんが、他のほとんどのデータベースはMySQLほど風変わりではないため、おそらく必要ありません。データベースをMySQLからPostgreSQLに移行しましたが、これは必要ありません。 /*! */ 表記法ですが、PostgreSQLはH2に十分似ているため、必要ありませんでした。

    devとprodに異なる構成を使用する場合は、prodに追加の構成を用意することをお勧めします。これは、おそらくplay runで開発サーバーを起動するためです。 、play stage; target/starttarget/start -Dconfig.resourceを取ることができます パラメータ。たとえば、追加の構成ファイルprod.confを作成します 次のような製品の場合:

    include "application.conf"
    
    # Extra config for prod - this will override the dev values in application.conf
    db.default.driver=...
    db.default.url=...
    ...
    

    start_prodを作成します 次のようなスクリプト:

    #!/bin/sh
    
    # Optional - you might want to do this as part of the build/deploy process instead
    #play stage
    target/start -Dconfig.resource=prod.conf
    

    理論的には、逆の方法で、application.confを使用することもできます。 prod confを含め、dev.confを作成します ファイルですが、とにかくスクリプトでprodを開始する必要があります(おそらく、追加のJVM/メモリ/GCパラメータが必要になるか、rc.dなどに追加することになります)。



    1. Oracleでの<>の意味

    2. COUNT(*)は、1つだけではなく複数の行を返します

    3. SQLServerセキュリティ関数HAS_Permis_BY_Nameとそのユースケースを理解する

    4. MySQLユーザー権限