Замена внешнего ключа на другую модель - PullRequest
1 голос
/ 21 декабря 2011

У меня есть модель:

class myModels(model.Model):
    handler =  models.ForeignKey(User, blank=True, null=True)

Внешний ключ не использовался, поэтому он всегда нулевой.Теперь я хочу использовать его в качестве внешнего ключа для другой модели, например:

handler =  models.ForeignKey(Something, blank=True, null=True)

Я использую MySQL. У обработчика есть ограничения для модели User.

Предложения о том, какрешить это будет приветствоваться.Моей первой мыслью было бы удалить столбец и добавить его снова с новым ограничением, но я не уверен, что удаление столбца избавит от ограничения.

1 Ответ

3 голосов
/ 21 декабря 2011

Вы можете сделать ./manage.py reset yourapp, что приведет к удалению таблиц вашего приложения, а затем вы снова syncdb. Это то, что я делаю во время разработки, потому что это быстро и просто.

Есть много других способов: вы можете установить django-extensions, запустить команду ./manage.py sqldiff yourapp, а затем запустить сгенерированный SQL, который изменит структуру в соответствии с вашиом models.py.

Если вы хотите узнать больше о переносе схем, здесь - это статья, которая дает обзор текущих параметров.

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