تبدیل دیتابیس از mysql به postgress

۲۷ اسفند ، ۱۳۹۶

تعویض DBMS، کار اسانی نیست و پس از نصب و راه‌اندازی سیستم جدید، نیاز است که داده‌ها از سیستم قبلی به سیستم جدید منتقل شوند و عملیات تدیل دیتابیس صورت بگیرد. در این مقاله به آموزش روشی می‌پردازیم که به کمک آن می‌توان داده‌ها را از mysql به postgres انتقال داد.

این آموزش برای سیستم‌عامل فدورا می‌باشد اما روال آن در سایر سیستم‌عامل‌ها نیز به همین صورت است و فقط از پکیج منیجر مخصوص آن سیستم‌عامل باید برنامه‌های مربوطه را نصب کرد.

برای انجام عملیات انتقال، ما از دستور pgloader استفاده می‌کنیم که دستوری برای انتفال داده به postgres می‌باشد. برای نصب این دستور ابتدا لازم است که پکیج‌های مورد نیاز آن را نصب کنید. برای این کار دستور زیر را اجرا کنید:

sudo yum install sbcl unzip libsqlite3-dev make curl gawk freetds-dev libzip-dev freetds  sbcl

سپس پکیج مربوط به pgloader را با اجرای دستور زیر دریافت می‌کنیم:

git clone https://github.com/dimitri/pgloader.git

سپس با اجرای دستورات زیر وارد پوشه مربوط به آن شده و به نصب پکیج می‌پردازیم:

cd pgloadermake

پس از اتمام عملیات نصب، فایل pgloader در پوشه‌ی build/bin باید موجود باشد.

در نهایت با اجرای دستور زیر داده‌هایمان را از یک دیتابیس در mysql به یک دیتابیس در postgres انتقال می‌دهیم.

cd build/bin./pgloader -v -d \
    --cast "type bigint with extra auto_increment to bigserial drop typemod" \
    --cast "type bigint when (= 20 precision) to bigint drop typemod" \ 
    --cast "type timestamp to timestamp using zero-dates-to-null" \
    --cast "type datetime to timestamp using zero-dates-to-null" \
    mysql://USERNAME:PASSWORD@localhost/DBNAME \ 
    pgsql://USERNAME:PASSWORD@localhost/DBNAME

توجه کنید که قبل از اجرای این دستور باید در postgres یک دیتابیس با نام دلخواه ساخته باشید.

موفق باشید :)


میانگین آرا:
96.6% (18 نفر)
رای دهید:
مقالات مرتبط
مشاهده بیشتر...