Добрый день. Являюсь действующим DevOps/SRE инженером.
Готов взяться за поддержку вашего проекта.
Из моих компетенций:
- Работы с СУБД Postgres, MySQL, Mongo
- Работы с сервисами очередей RabbitMq, Kafka
- Работаю только с серверами под управлением *nix-like систем. Т.е. windows - сервер не рассматриваю.
- Работа с nginx - для проксирования или хостинга вашего сайта
- Kubernetes - развертка с нуля, поддержка.
- S3 хранилища - ceph,minio
- Планирование архитектуры в облаке, хороший опыт в использовании YandexCloud.
Это лишь часть из моих компетенций, которыми я готов поделиться с вами.
Если заинтересованы - предлагаю следующий подход:
- Связываемся и обговариваем перечень требований к проекту.
- Обсуждаем лучшие подходы и решения ваших проблем, которые вижу я, и которые видите вы.
- Договариваемся о цене.
Готов к работе на долгосрочной основе.
Имею собственное ИП
Для решения этой задачи можно использовать библиотеку sqlparse для парсинга SQL-скриптов и определения различий между ними. Затем, основываясь на этих различиях, можно сгенерировать SQL-команды для миграции.
Вот пример кода, который выполняет эту задачу:
import re
from sqlparse import parse, tokens as T
from sqlparse.sql import Identifier, Token
def compare_schemas(origin_schema, migrated_schema):
"""Сравнивает две схемы и возвращает список SQL-команд для миграции."""
commands = []
# Парсим оба SQL-скрипта
origin_statements = list(parse(origin_schema))
migrated_statements = list(parse(migrated_schema))
# Фильтрация по типу команды
def filter_by_type(statement):
return statement.get_type() == 'CREATE'
# Сравнение схем
for create_statement in origin_create_statements:
if create_statement not in migrated_create_statements:
commands.append(create_statement.to_sql())
return commands
def generate_commands_for_migration(origin_schema_path, migrated_schema_path):
with open(origin_schema_path) as f:
origin_schema = f.read()
with open(migrated_schema_path) as f:
migrated_schema = f.read()
with open('sql_command_for_migrate.sql', 'w') as f:
f.write('\n'.join(commands))
if __name__ == '__main__':
generate_commands_for_migration('origin.sql', 'migrated.sql')
09:23 22.07.24
Этот код принимает два пути к файлам с SQL-скриптами и генерирует SQL-команды для миграции в файл sql_command_for_migrate.sql. Он предполагает, что все изменения в схеме базы данных происходят через команды CREATE, и что нет необходимости в удалении или изменении существующих объектов.
Обратите внимание, что этот код не учитывает возможные зависимости между объектами базы данных, поэтому может потребоваться дополнительная логика для обработки таких случаев.
Написать скрипт в CLI, который на входе принимает две схемы данных из PSQL, а на выходе выдает команды, которые позволят сделать миграцию
Реклама
Написать скрипт в CLI, который на входе принимает две схемы данных из PSQL, а на выходе выдает команды, которые позволят сделать миграцию
Есть два состояния сохранённое через backup PSQL (plain, scheme-only).
Нужно сравнить два состояния базы, и составить SQL команды для миграции.
Допускается из команд только добавить. Удаление, изменение - нельзя.
На входе два SQL файла, на выходе SQL файл с командами для миграции.
Добавляем:
схемы,таблицы, колонки, индексы, зависимости, sequence, функции, процедуры
Разработка в частном репозитории GitLab.
Зависимости в requirements (без Poetry)
Python 3.9
вызов python origin.sql migrated.sql sql_command_for_migrate.sql
сравниваем origin.sql <> migrated.sql результат в sql_command_for_migrate.sql
Примеры во вложении
-----
РАБОТА ТОЛЬКО С ООО, ИП ИЛИ САМОЗАНЯТЫМИ! СТРОГО!
Другие открытые задания:
Сделать личный кабинет с возможностью добавления объявлений, разделом мои объявления и модерацией(доработкой админки) на CMS Bitrix300 000 р.
Бюджет: 300 000 р. Сделать личный кабинет с возможностью добавления объявлений, разделом мои объявления и модерацией (доработкой админки) на CMS Bitrix Имеем готовый прототип и диз…
Ищу менеджера по продажам300 000 р.
Бюджет: 300 000 р. Обязанности: Продажа услуг компании Поиск клиентов Требования: Опыт не важен, главное желание и упорство Честность Условия: Я предлагаю хорошую систему мотив…
Смоделировать части готовой модели автомобиля15 000 р.
Бюджет: 15 000 р. Привет! Есть модель машины которую мы используем для игры. В игре планируется полная разрушаемость и нужно смоделировать каждую часть машинки отдельно. Важно чт…
поиск заданий