170 похожих чатов

Привет, подскажите как лучше сделать. У меня в веб проекте есть

какие-то данные, которые должны быть в бд при работе с проектом, типо справочная информация (например, единицы измерения (кг, метры, сантиметры, штуки)). Как их лучше заносить в бд?
Сейчас они зонясятся с помощью миграций (alembic), создаю просто миграцию, в которой операция вставки в бд, но
Они могут менятся (например колонка какая-то добавилась - и тут уже приходится миграцию новую делать и старую откатывать) и данные могут добавляться (тут просто приходится ещё одну миграцию писать).
Какие ещё есть варианты решения такой задачи? думаю, можно при старте сделать функцию, которая всё проверяет и заполняет если что

14 ответов

16 просмотров

Алембик не должен заносить никаких данных в проект, только создавать структуру базы и вносить в нее изменения. А как вносить данные в базу... Ну, во первых можно реализовать это в самом проекте, какая-то панель для добавления, или админка. Можно напрямую SQL запросами, либо используя утилиты для работы с СУБД.

Если исходные данные нормализованы то нет проблем написать на том же питоне скрипт, который будет загружать в твою базу

Ruslan- Автор вопроса
Pavel Glukhov
Если исходные данные нормализованы то нет проблем ...

а как и когда мне запускать такой скрипт, у меня веб приложение - насколько норм сделать это по эндпоинту для админа?

Ruslan
а как и когда мне запускать такой скрипт, у меня в...

Что мешает сделать эндпоинт, или одностаничник с загрузкой файла с данными?

Ruslan
а как и когда мне запускать такой скрипт, у меня в...

запускать скрипт можно по расписанию, или сделать какой-то триггер на наличие файлов в укказанной папке. Это ещё один костыльный способ

дело хозяйское. Но звучит прям так себе. 🌝

Ruslan- Автор вопроса
Pavel Glukhov
дело хозяйское. Но звучит прям так себе. 🌝

и всё-таки я не понимаю, почему теоретически может быть плохо вставлять данные в миграциях

Алембик - это средство для миграции базы данных. Миграции, это что-то похожее на инструмент по контролю версии для БД и внесению изменений в нее. И этот инструмент должен быть использован только контроля и внесения изменений в структуру базы данных и не более.

Ruslan- Автор вопроса
Pavel Glukhov
Алембик - это средство для миграции базы данных. М...

почему под версией БД ты подразумеваешь только её структуру? Данные же тоже являются её частью

Ruslan
почему под версией БД ты подразумеваешь только её ...

Сохранностью данных твоей базы должна заниматься система бекапирования, а не миграция

Это совершенно оторванные понятия. Структура базы и данные в ней хранящиеся. первое - более статичное, до момента внесения в структуру изменений. Второе 'данные' являются динамическими, так как подвергаются изменениям (добавляются, удаляются, обновляются)

Ruslan- Автор вопроса
Pavel Glukhov
Это совершенно оторванные понятия. Структура базы ...

я думаю проблема в том, что понятие миграция бд очень размытое и не понятно что в него входит

Ruslan
я думаю проблема в том, что понятие миграция бд оч...

Миграция. 1 понятие - перенос данных с источника в источник. 2 - внесение изменений в структуру.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта