Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Gunakan Mysql di dev/prod dan H2 di test

Ada beberapa trik yang mungkin berguna bagi Anda.

Pertama, /*! */ notasi memungkinkan Anda untuk menambahkan kode yang akan dipatuhi MySQL, tetapi DB lain akan mengabaikannya, misalnya:

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

Ini bukan peluru perak, tetapi ini akan memungkinkan Anda membahas beberapa perbedaan antara sintaks MySQL dan H2. Ini adalah MySQL-isme, jadi itu tidak akan membantu dengan database lain, tetapi karena kebanyakan database lain tidak seunik MySQL, Anda mungkin tidak membutuhkannya - kami memigrasikan database kami dari MySQL ke PostgreSQL, yang tidak mendukung /*! */ notasi, tetapi PostgreSQL cukup mirip dengan H2 sehingga kami tidak membutuhkannya.

Jika Anda ingin menggunakan konfigurasi yang berbeda untuk dev dan prod, sebaiknya Anda memiliki konfigurasi tambahan untuk prod. Alasannya adalah Anda mungkin akan memulai server dev dengan play run , dan mulai server prod Anda dengan play stage; target/start . target/start dapat mengambil -Dconfig.resource parameter. Misalnya, buat file konfigurasi tambahan prod.conf untuk prod yang terlihat seperti:

include "application.conf"

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

dan buat start_prod skrip yang terlihat seperti:

#!/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

Secara teori, Anda bisa melakukannya sebaliknya, dan memiliki application.conf berisi prod conf, dan buat dev.conf file, tetapi Anda mungkin tetap menginginkan skrip untuk memulai prod (Anda mungkin akan membutuhkan parameter JVM/memori/GC tambahan, atau menambahkannya ke rc.d, atau apa pun).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerapkan subtipe tipe super dengan benar di MySQL

  2. PHP - Azure mySQL dalam aplikasi Mengubah Port Secara Acak

  3. Lazy load dari database saat pengguna menggulir halaman ke bawah (mirip dengan Twitter dan Facebook)

  4. Pencarian FULLTEXT di MySQL tidak mengembalikan baris apa pun

  5. Laravel-5 'LIKE' setara (Fasih)