Я изменил название своего приложения Django, а не имена баз данных, которые не совпадают
Я использую Django и хотел изменить название приложения с "project" на "проекты", чтобы сделать его более понятным и соответствующим другим моделям.
Итак, я проделал обычные действия с Django. Изменил название конфигурации, изменил URL-адрес конфигурации, изменил название папки приложения. Даже изменил apps.py и URL-адреса на app_name = 'проекты'
Миграция прошла нормально.
Проблема в том, что база данных по-прежнему отображает все как project_*** в базе данных.
Итак, теперь я получаю такие ошибки, как эти:
** error relation "projects_overview" does not exist
LINE 1: SELECT "projects_overview"."a_id" FROM "projects_overview"
Ему нужна новая буква "S".
как я могу заставить базу данных отображать правильный префикс projects_, а не старый project_?
придется ли мне использовать команды Postgres для изменения всех таблиц вручную или я пропустил какую-то команду Django.
Базы данных - это не мое, поэтому я очень благодарен за чью-либо добрую помощь. Спасибо».
Название таблицы следует изменить соответствующим образом. Что-то вроде
alter table project_overview rename...
ИЗМЕНИТЬ ТАБЛИЦУ
project_overview
ПЕРЕИМЕНОВАТЬ В
projects_overview
;
Вы можете указать пользовательское имя таблицы в модели с помощью метакласса перед изменением имени приложения, чтобы оно не конфликтовало с именем приложения
class MyModle:
class Meta:
db_table = "custom_table_name"
Примечание:
Вы должны сделать это перед изменением названия приложения. В противном случае вам придется вручную изменить имя каждой таблицы в базе данных или написать custom migration
, чтобы переименовать таблицы с новым именем приложения.