Что Django похвально эквивалентно дропу $ rails db в Rails - PullRequest
0 голосов
/ 07 сентября 2018

Что-то должно быть очень, очень неправильно. Это не может быть так сложно.

Я пытаюсь удалить таблицы в моем приложении Django, которое сделано из ORM sqlite3 по умолчанию.

Каждый раз, когда я хочу $ python manage.py makemigrations, Джанго спрашивает меня, как я хочу обработать новое поле в уже существующих строках, и я ненавижу его.

Итак, я хочу просто удалить все таблицы из моей модели 'Post' и выполнить новые миграции.

Это легко сделать $ rails db drop; rails db migrate на Rails, но я не могу найти никакой похвалы, эквивалентной этому на Django.

Я гуглил и нашел коммент как $ python manage.py flush, но он эффективно сбрасывает все мои столы, даже мой Суперпользователь.

Я не хочу этого и хочу удалить таблицу из определенного приложения.

В некоторых сообщениях даже говорилось, что мне нужно вручную удалить все файлы миграции и db.sqlite3, но я уверен, что есть другой способ.

Еще одна альтернатива, о которой я думаю, - это открыть manage.py оболочку и удалить их, как показано ниже (что я узнал из руководства по официальной документации)

$ python manage.py shell

>> from posts.models import Post

>> Post.objects.all().delete()

Я надеюсь, что это не так, как должно быть.

1 Ответ

0 голосов
/ 07 сентября 2018

Нет команды django для удаления базы данных или даже удаления таблицы. Единственный способ, как вы сказали, удалить db.sqlite3, а затем удалить все (кроме __init__.py) из папки миграции перед запуском makemigrations и migrate. Если вы находите это громоздким, просто поместите его в скрипт оболочки, вот что я делаю.

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