DataMapper: используя auto_migrate! со многими ко многим зависимостям? - PullRequest
3 голосов
/ 20 мая 2010

Я пытаюсь перенести мое приложение из MySql в Postgresql, используя Rails3-pre и последнюю версию DataMapper.

У меня есть несколько моделей, которые связаны через отношения «многие ко многим» с использованием: through => Resource, что означает, что DataMapper создает таблицу соединения с внешними ключами для обеих моделей. Я не могу auto_migrate! эти изменения, потому что я продолжаю получать это:

ERROR:  cannot drop table users because other objects depend on it
DETAIL:  constraint artist_users_owner_fk on table artist_users depends on table users
constraint site_users_owner_fk on table site_users depends on table users
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

Я перепробовал все, что мог придумать, и подумал, что у меня все работает, когда я добавил: constraint =>: перейти к определению поля, но я продолжаю получать эту ошибку, когда пытаюсь запустить auto_migrate. Я думал, что: пропустить означает, что он будет игнорировать зависимости, но, может быть, это применимо только для удаления строк, а не удаления таблиц?

Я должен упомянуть, что я могу запустить auto_migrate после того, как я уничтожу БД один раз, но после этого ошибки.

Любые предложения или советы очень ценятся.

Редактировать: Gibheer на datamapper irc предложил вместо этого использовать auto_upgrade - он не пытается воссоздать таблицы.

Ответы [ 2 ]

1 голос
/ 10 июля 2010

У меня была похожая проблема с импортом внешних данных и связей, кто-то предложил мне попробовать DataMapper.finalize.auto_migrate! перед началом вставки данных.Надеюсь, это поможет

0 голосов
/ 05 апреля 2016

У меня была точно такая же проблема, но она не была решена с помощью auto_migrate или auto_upgrade.

Я создал модель с тем же именем, что и автоматически выбранное имя таблицы «многие ко многим», а затем удалил файл модели, не удаляя таблицу, что, как мне кажется, вызвало проблему при прохождении процесса миграции. *

После удаления таблицы пересечений вручную я смог двигаться вперед со всеми миграциями (многократно вверх / вниз) с данными без проблем.

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