Javascript Disabled!

Please Enable Javascript if you disabled it, or use another browser we preferred Google Chrome.
Please Refresh Page After Enable

Powered By UnCopy Plugin.

SQLAlchemy Migrations


SQLAlchemy Migrations

مقدمه ای بر SQLAlchemy Migrations

مهاجرت‌های sqlalchemy یکی از ویژگی‌ها است و مهاجرت می‌کند تا راهی برای مقابله با طرح پایگاه داده و تغییرات آن در پروژه‌های sqlalchemy فراهم کند. داده ها را با کمک برخی از ابزارها مهاجرت می کند مانند alembic یکی از ابزارهای انتقال داده است که دستور Alter را به پایگاه داده خاص ارائه می دهد تا ساختار جدول و ساختار ارائه شده توسط اسکریپت های مهاجرت را تغییر دهد.

SQLAlchemy Migrations چیست؟

مهاجرت نیاز به ارتقای سیستم است و در اینجا باید پایگاه داده را مهاجرت کنیم تا از تکنیک مهاجرت SQLAlchemy استفاده شود. n تعداد ابزار برای انتقال پایگاه داده دارد. ما از Flask-Migrate و Alembic، ابزارهای پرکاربرد برای مدیریت داده های کاربر استفاده کردیم. Alembic ابزار مهاجرت پایگاه داده است که با sqlalchemy نوشته شده است و اسکریپت ها و قالب های مهاجرت خود را برای خود دارد. پایگاه داده هدف عمدتاً بر روی نسخه جدید متمرکز است و به صورت اختیاری وارد فرآیند ارتقاء و همچنین کاهش رتبه می شود. گاهی برعکس و معکوس تکنیک است. می‌توانیم به اسکریپت مهاجرت اجازه دهیم همان ترتیب داده‌های متوالی را با مراحل پایان کاربر اجرا کند.

پایگاه داده مهاجرت SQLAlchemy

sqlalchemy انتقال پایگاه داده را با ابزارهای خاصی مانند Alembic و سایر PostgreSQL انجام می دهد تا داده ها را در محیط مهاجرت مدیریت کند. دارای اسکریپت‌های دایرکتوری است که می‌توان آن‌ها را با استفاده از ابزار مهاجرت Alembic با کد منبع خاص محیط برنامه مشخص کرد. init فرمان آنها را می توان با ابزار خط فرمان در مسیر محلی مشخص شده، در همان محیط ماژول پایتون فراخوانی کرد. فرض کنید ما از ابزار مهاجرت پایگاه داده SQLAlchemy برای نوع فلاسک برنامه با استفاده از مهاجرت sqlalchemy Alembic استفاده کردیم. سپس عملیات پایگاه داده از رابط خط فرمان flask تشکیل شده است که بر روی تنظیمات و برنامه های افزودنی Alembic منتقل می شود. این روش مناسبی برای کار با فلاسک و برنامه flask-sqlalchemy از مهاجرت های واقعی پایگاه داده است که می تواند با استفاده از ابزار Alembic برای همان عملکرد مدیریت شود. اسکریپت مهاجرت باید با کمک ابزار alembic که در حال حاضر برای تشخیص تغییرات و مدل‌های آن مورد نیاز است، بازبینی و اصلاح شود.

به طور کلی، alembic در حال حاضر از تشخیص تغییرات نام جدول مانند سطر و ستون اصلاح شده با استفاده از محدودیت های ناشناس تشکیل شده است. یکی از بخش‌های اصلی را می‌توان با استفاده از ابزار Alembic برای تعیین پیکربندی که هسته‌ای را که مستقیماً فایل‌ها را نمی‌خواند، پیاده‌سازی کرد. با کمک اسکریپت مهاجرت، همان ماژول به روز می شود و مسیر پایتون نیز به عنوان پروژه هدف با محیط مجازی در هنگام اجرای دستور alembic استفاده می شود. ما می‌توانیم فایل .py(python) را در دستورالعمل‌های کاربر نهایی مصرف‌شده سفارشی کنیم که نمی‌تواند دستورالعمل‌های اضافی را در محیط‌های خط فرمان شامل شود. env.py کد پیکربندی را تغییر می‌دهد و متغیرهای محیطی را در فایل .ini تنظیم می‌کند. عبارت Alter را می توان به پایگاه داده، ساختار جدول و سایر ساختارهای ارائه شده در اسکریپت های مهاجرت منتشر کرد. هر نوع اسکریپت مجموعه مراحل خاصی را که می توان ارتقا داد و نسخه پایگاه داده هدف را نشان می دهد. ما می توانیم alembic را با استفاده از دستور python-pip مانند نصب کنیم pip install alembic,

پایگاه داده SQLAlchemy migrations 1

پس از آن، می‌توانیم پوشه alembic را در بسته‌های Appdata/Roaming/Python/Python310/سایت مشاهده کنیم.

پایگاه داده SQLAlchemy migrations 2

نصب به طور خودکار دستور alembic را به نوع مجازی محیط اضافه می کند. با استفاده از دستور alembic init برای راه اندازی اولیه فایل setup.py در محیط مجازی محلی.

چگونه از SQLAlchemy Migrations استفاده کنیم؟

ابتدا env.py را برای ایجاد env مانند conda env create -f environment.yml ویرایش می کنیم تا محیط را تنظیم کنیم. سپس باید از ساختار دایرکتوری با استفاده از پایگاه داده مهاجرت پایگاه داده مانند پایگاه داده-migration -نام پایگاه داده اطمینان حاصل کنیم.

با استفاده از فایل __init__.py، می توانیم api. را دریافت کنیم که تفاوت های مهاجرت را وارد کرده است.

نحوه استفاده 1

نحوه استفاده 2

به طور کلی، env.py یک فایل اسکریپت مبتنی بر پایتون است که هر زمان که ابزار مهاجرت را در ابزار alembic migration فراخوانی می‌کنیم، اجرا می‌شود. این شامل دستورالعمل هایی برای پیکربندی و تولید موتور sqlalchemy در پایگاه داده با برخی از اتصالات خریداری شده و تراکنش های کاربر و پایگاه داده است. موتور مهاجرت همین کار را برای استفاده از اتصال منبع پایگاه داده فراخوانی می کند. script_location یک محیط alembic است که معمولاً به عنوان مکان سیستم فایل بین مسیرهای مکان نسبی یا مطلق مشخص می شود. این مربوط به دایرکتوری فعلی است و به عنوان تنها کلید مورد نیاز alembic در همه موارد تفسیر می شود.

Sqlalchemy.url= mysql+mysqldb://@localhost/database یک پایگاه داده واحد است، و این یکی از انواع پیکربندی عمومی برای تنظیم URL SQLAlchemy است که لازم است. بنابراین می‌توانیم یک اسکریپت مهاجرت با همان محیط برای ایجاد ویرایش‌های جدید مانند ویرایش alembic برای ایجاد حساب جدولی که باید برای ایجاد اسکریپت مهاجرت استفاده شود، ایجاد کنیم.

ویرایش Alembic و ایجاد جدول در sqlalchemy برای مدتی بسته را وارد می‌کند، و فایل حاوی اطلاعات هدر و شناسه‌های دیگر برای هر دو نسخه ارتقاء و تنزل رتبه دستورالعمل‌های پایه alembic است. می‌توانیم از متد پیش‌فرض در فایل مانند def upgrade() و def downgrade(); برای این دو روش، ابتدا توابع خالی را وارد می کند و در حالی که ما کار اجرای اسکریپت های مهاجرت را به صورت دستی اجرا می کنیم. ما اولین نوع مهاجرت را با فرض پاک شدن پایگاه داده اجرا می کنیم. پس از آن، با استفاده از دستور ارتقاء alembic برای اجرای دستورالعمل های ارتقا یافته، ارتقا می یابد.

نمونه ای از SQLAlchemy Migrations

در زیر مراحل انجام می شود:

1. ما باید PostgreSQL، alembic و sqlalchemy را در دستگاه نصب کنیم.

SQLAlchemy Migrations مثال 1

2. سپس با استفاده از دستور باید alembic را در مسیر ذکر شده اجرا کنیم و سلسله مراتب پوشه را به صورت زیر alembic.exe init drive path(d:\test) ایجاد کنیم.

SQLAlchemy Migrations مثال 2

3. پس از آن می توانیم فایل محیطی محیطی و readme.md را ایجاد کنیم که حاوی کد زیر است.

Environment.yml:

name: database-migrations
channel:
- default
dependencies:
- python=3.10
- sqlalchemy=1.4.31
- psycopg2=2.8.6
- alembic=1.7.6

readme.md:

#database-migration-scripts
## create env
conda env create -f environment.yml
## directory structure
database-migration -----> postgresdb1 ---->mar7schema
-----> mar7table
## alembic init
alembic init <schemaname>
## create revision
alembic revision -m "-message"
## for local revision
export postgresdb=postgresql://postgres:my

4. با استفاده از دستور conda env create -f environment.yml می توانیم محیط را در چارچوب آناکوندا تنظیم کنیم.

SQLAlchemy Migrations مثال 3

5. می توانیم دستور زیر را مانند alembic init schema name اجرا کنیم. برای ایجاد نام طرح پایگاه داده

SQLAlchemy Migrations مثال 4

SQLAlchemy Migrations مثال 5

6. ما می توانیم فایل alembic.ini را در پوشه مشاهده کنیم.

فایل alembic.ini مثال 6

SQLAlchemy Migrations مثال 7

7. سپس باید با استفاده از دستوری مانند alembic revision -m “message” پایگاه داده را اصلاح کنیم و این ویرایش را مانند زیر ایجاد می‌کند.

SQLAlchemy Migrations مثال 8

مثال 9

8. باید در فایل پایتون revision مانند زیر، working_data را ایجاد کنیم.

"""create employee data
Revision ID: 2ed8d1118e4f
Revises:
Create Date: 2022-03-07 18:29:34.423987
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import Column, Integer,String
from sqlalchemy.schema import Sequence, CreateSequence
# revision identifiers, used by Alembic.
revision = '2ed8d1118e4f'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
op.execute(CreateSequence(Sequence('table_sid_seq')))
op.create_table("employee_data",
Column("s_id",Integer, nullable=False, server_default=sa.text("nextval('table_sid_seq'::regclass)")),
Column("name", String, nullable=False),
schema="mar7schema")
def downgrade():
op.drop_table("employee_data",schema="mar7schema")

9. سپس باید alembic upgrade head را اجرا کنیم – sql پایگاه داده با موفقیت ایجاد شد.

مثال 10

مثال 11

نتیجه

مهاجرت SQLAlchemy تکنیک و ویژگی ارتقا یافته برای مدیریت داده های کاربر در قسمت جلویی و پشتی است. این یکی از جنبه‌های مهم سیستم‌های مقیاس بزرگ است و باید برای جلوگیری از از دست رفتن داده‌ها و سایر در دسترس بودن سیستم، به درستی از آن استفاده کرد.

مقالات پیشنهادی

این راهنمای SQLAlchemy Migrations است. در اینجا مقدمه، پایگاه داده و نحوه استفاده از SQLAlchemy Migrations را به همراه مثالها مورد بحث قرار می دهیم. همچنین می توانید برای کسب اطلاعات بیشتر به مقالات زیر نگاهی بیندازید –

  1. SQL EXECUTE
  2. تنظیم عملکرد SQL
  3. dblink PostgreSQL
  4. MySQL COALESCE()

پست SQLAlchemy Migrations اولین بار در تگ سرویس ظاهر شد.


به این مطلب امتیاز دهید

جهت ارسال نظر اینجا کلیک کنید.