бд из джанго?
конечно. Джанго примерно про это
Он мигрирую таблицы... Но некоторые таблы я прописал в отдельной схеме, вываливается ошибка о том, что нужной схемы нет. Ее автоматически не создает, а в ручную как-то муторно создавать
перед миграциями нужно определить константой список схем, по этому списку предварительно прогонять скрипт на их создание, только потом миграции гнать. в коробке джанго этого нет, народ как иожет костылит эту проблему. кто то просто правит миграции после их создание, где проверка на наличие схемы, и если её нет то создают.
А где определять список схем? Это вы сейчас про создание команд в джанго? Или как это сделать?
это я про файл настроек проекта, settings.py
Не понимаю, если честно, что нужно сделать с settings.py, чтобы проверить/создать бд и схемы в ней, если их нет... У меня сейчас прописана бдшка и все, в ручную приходится дополнительную схему создавать, если ее нет Это можно как-то в сеттинге создавать?
возможно через опции БД, типа: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'OPTIONS': { 'options': '-c search_path=portal,public,erz' }, }
а джанго-модели описал?
Да, просто миграцию сделать не могу, если нет схемы
за создания файлов для миграций, отвечает management команда - ./manage.py makemigrations
Понял, спасибо за наводку)
если в этом направлении пусто, то придётся предварительно коннектится к бд без ОРМ джанго, и прогонять raw скрипт по наличию/созданию схем
кажется я не совсем понял: про какие "схемы" вы общаетесь?
Схемы бд.
схемы в бд. если их нет в бд, а в модели явно прописана схема к примеру
в моем понимании - это совокупность таблиц, с ограничениями и индексами. Это же все описывается джанго-моделями. Или еще можно так назвать: картинку / "карту ума", которая все выше перечисленное отображает вместе со связями между таблицами. Но сюда никак не относятся миграции 🤔 Вот и спрашиваю: то ли я не понимаю о чем речь, то ли парни общаются на своей волне)
Да, схема бд это то самое, о чем ты говоришь. Видимо я недостаточно внимательно тред прочитал)
вот если "совокупности таблиц" в бд нет, а в моделях они явно указаны для определённых таблиц, то джанга их не создаёт сама при развёртывании проекта на чистую базу к примеру. может и умеет, но я не знаю пока штатных методов чтоб схемы создавались.
если в моделях явно не указывать схемы - то они создаются в public к примеру по умолчанию
штатный метод: - генеришь файлы миграций на локалке - ./manage.py makemigration - переносишь, вместе с проектом, для развертывания на сервере - применяешь на сервере - получаешь новую БД на сервере Профит!
а надо в какую схему?
так вы про эти схемы общались? - сразу не допер))
++ не знаю про такую возможность, мне тоже будет полезно. Спасибо
а зачем тебе таблицы раскиданные по разным схемам БД? Обычно все в public пишут
https://www.amvtek.com/blog/posts/2014/Jun/13/accessing-multiple-postgres-schemas-from-django/ Если правильно понял, эта функция для того, чтобы не привязать модель к схеме через using('db_schema'), сейчас решил проблему следующим образом: подправил миграцию инициализации - перед созданием таблиц в другой схеме migrations.RunSQL("CREATE SCHEMA new_schema;"), migrations.CreateModel(...
по смыслу разделил бд на схемы: в паблик все, что активно используется юзерами, в другой таблицы, которые автоматически заполняются, но для вывода информации не используются
мне кажется, ты сам себе создаешь проблемы таким раскидыванием таблиц
порой требования заказчика по схемам раскидывать, для себя всегда по умолчанию юзаю
а эти требования как-то обоснованы или просто заказчик такой (будем прилично выражаться 😃)?
+
примерно про это я и говорил, что миграции правятся. но это надо всегда помнить, что не всегда реально
Обсуждают сегодня