Граальс продолжает удалять мои таблицы - PullRequest
2 голосов
/ 01 июля 2011

У меня есть структура моей таблицы:

CREATE TABLE test_two_tabel. T1 (T1_ID INT NOT NULL AUTO_INCREMENT, A1 INT NULL, B1 VARCHAR (45) NULL, C1 VARCHAR (45) NULL, D1 DATETIME NULL , ПЕРВИЧНЫЙ КЛЮЧ (T1_ID));

В Граале:

package twotables

class T1 {

    Integer a
    String b
    String c
    Date d

    static mapping = {
        table "T1"
        version false
        id column:"T1_ID"
        a1 column:"a1"
        b1 column:"b1"
        c1 column:"c1"
        d1 column:"d1"
    }

    static constraints = {
        id()
        a1()
        b1()
        c1()
        d1()
    }
}

Каждый раз, когда я выполняю свою программу ... Grails удаляет мои таблицы в БД, кто-нибудь знает, что происходит?

Ответы [ 2 ]

17 голосов
/ 01 июля 2011

Вам нужно изменить значение dbCreate с 'create-drop' на 'update' в grails-app/conf/DataSource.groovy

Ваше текущее значение, вероятно, равно:

development {
    dataSource {
        dbCreate = "create-drop" // one of 'create', 'create-drop','update'
        url = "***"
    }
}

это означает, что Grails будет воссоздать все таблицы при каждом перезапуске .Если вы установите это значение как update, оно попытается обновить структуру таблицы в соответствии с вашими классами модели данных.

Подробнее о конфигурации БД Grails можно прочитать по адресу http://www.grails.org/doc/latest/guide/3.%20Configuration.html#3.3%20The%20DataSource

0 голосов
/ 01 июля 2011

это может быть несколько вещей.Как упоминалось в @splix, это могут быть настройки 'create-drop'.

Кроме того, если вы никогда не меняли свой источник данных, Grails использует базу данных в памяти, поэтому она длится только до запуска программы.Вы можете указать hsqldb сохранить файл, а не быть в памяти.Вы также можете изменить его так, чтобы он указывал на что-то вроде mysql.Смотрите здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...