Adams
А когда Вы удалили миграции, Вы в БД посмотрели?
Там есть таблица django_migrations
CREATE TABLE django_migrations
(
id serial NOT NULL,
app character varying(255) NOT NULL,
name character varying(255) NOT NULL,
applied timestamp with time zone NOT NULL,
CONSTRAINT django_migrations_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE django_migrations
OWNER TO postgres;
Она хранит все выполненные миграции. И именно поэтому
При команде makemigrations вижу что созданы нужные модели, но при следующей команде migrate ничего не происходит - No migrations to apply. http://pastebin.com/9700s0jT
Таблицы, которые я удалил вручную больше не создаются...
То есть, если Вы "грохнули" отдельный файл миграций (и как-то вернули физическое состояние структуры БД к состоянию до этой миграции), то надо вручную залезть в эту таблицу (при помощи сторонних инструментов) и удалить оттуда строку содержащую информацию об этой миграции. Иначе, хоть makemigrations
и создасть новый файл миграций, команда migrate
- ничего не сделает, так как она видит что такая миграция уже была применена.
Только для таких "операций" надо четко представлять себе что делает миграция, которую вы удалили, что будет делать новая... и надо понимать что происходит с БД в каждом таком случае. Так же в миграциях есть зависимость от других миграций. Это все надо учитывать...
То есть способ то рабочий, но требует знаний.
Или, если Вы удаляете все миграции, и хотите заново создать все модели в БД, то проще удалить с сервера всю БД. И делать потом все с нуля. Только не забудьте позаботиться о предварительном бэкапе данных, если они есть.
Updated 23 Sept. 2016, 20:36 by EvgIq.