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

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

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

14 ответов

9 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта