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

Преобразуване на Play! еволюция на рамката от MySQL към PostgreSQL

Уверете се, че базата данни е в последователно състояние.

Ако приемем, че не сте мигрирали данните от предишната MySQL база данни и че работите в режим на разработка (а не в производствен режим), така че не е нужно да се притеснявате за запазването на данните:

  • Преименувайте вашата миграция обратно на 1.sql . Само защото сте изпълнили миграцията в предишна база данни, това не означава, че когато ще я изпълните в напълно нова база данни, това е втора еволюция:за новата база данни тя все още е първата.
  • Декларирайте колоните си с първичен ключ по следния начин:id bigserial primary key и премахнете constraint .
  • Уверете се, че имате празна база данни в PostgreSQL. Премахнете базата данни и я създайте отново (dropdb , createdb ).
  • Изпълнете миграцията на вашата база данни и гледайте резултата, за да се уверите, че миграцията е изпълнена. Вижте Управление на еволюции на бази данни .
  • Използвайте PgAdmin или подобен инструмент като Toad Extension за Eclipse за да проверите дали структурата на базата данни е създадена правилно.

Като алтернатива може да откриете, че Flyway предоставя по-всеобхватен подход към миграциите на бази данни. Има плъгин за Play Framework.

За да избегнете изключението Error getting sequence nextval , коректно анотирайте дефинициите на класа на обекта по следния начин:

@Id
@SequenceGenerator(name="product_gen", sequenceName="product_id_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="product_gen")
@Column(name="id")
public Long getId() { return id; }

Проверете базата данни, за да се уверите, че sequenceName е името на последователността, създадена от PostgreSQL.

За повече информация вижте:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на инструменти за хибернация за обратно инженерство на pojos от Postgres

  2. Функция за връщане на динамичен набор от колони за дадена таблица

  3. не може да се създаде потребител postgres:ролята postgres не съществува

  4. Цикъл върху таблици с PL/pgSQL в Postgres 9.0+

  5. Django ConnectionAbortedError:[WinError 10053] Установена връзка е прекъсната от софтуера на вашата хост машина