Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте Mysql в dev/prod и H2 в тест

Има няколко трика, които може да ви бъдат полезни.

Първо, /*! */ нотацията ви позволява да добавяте код, на който 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. Причината за това е, че вероятно ще стартирате вашия dev сървър с play run , и стартирайте своя prod сървър с play stage; target/start . target/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/memory/GC или да го добавите към rc.d или каквото и да било).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на масив с помощта на рекурсивен php от mysql

  2. Как мога да избегна ремонт с keycache в MySQL?

  3. Не може да се свърже с MySql база данни на отдалечен linux сървър от Windows GUI инструмент

  4. вмъкнете няколко реда в mysql чрез node.js

  5. MySQL Trigger след актуализация само ако редът е променен