دسته بندی ها
12:04 1401/05/31

انتقال دیتابیس از Sql Server به PostgreSql

مشخصات سوال کننده :
کاربر : mshosseini     امتیاز کاربر : 33     رتبه کاربر : 23
دسته بندی : Sql Server PostgreSql

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2719
1 نظر
mshosseini : تست روی postgres و sql server انجام شد که postgres فوق العاده سرعت بالاتری داره

امتیاز کاربر : 33   رتبه کاربر : 23   تاریخ ثبت : 12:28 1401/05/31
پاسخ دهنده : fateme 17:22 1401/06/01

یکی از شناخته ترین نرم افزارهای مدیریت اطلاعات Sql Server هست که بهترین مزیت اون هم سادگی مدیریت اطلاعات و یوزرفرندلی بودن، هست. ولی این نرم افزار اشکالاتی داره از جمله این که هزینه بالای خود نرم افزار و سختگیریهای زیادی که در صدور مجوزهای داده ها داره. همچنین برای مدیریت داده های بزرگ راه حل های پیچیده ای رو داره که شاید برای هر کاربری قابل استفاده نباشه.

 

نرم افزار PostgreSql چیست ؟

نرم افزار PostfreSql یکی از دیتابیس های رابطه ای (RDBMS) بسیار قدرتمندیه که عملکرد یکپارچه پایگاه داده شی گرا و/یا رابطه ای را ارائه می دهد. برای پروژه هایی که به سطح بالایی از یکپارچگی و قابلیت اطمینان نیاز دارند این نرم افزار توصیه می شود. همچنین این نرم افزار سرعت بسیار بالایی در پرس و جوها و مدیریت داده های بزرگ رو ارائه می دهد.

 

انتقال اطلاعات از Sql Server به PostgreSql

خب سوال شما خیلی کلی هست و دقیقا نمیشه پاسخ دقیقی براش ارائه کرد. اما اگر بخواید اطلاعات رو از Sql Server به PostgreSql انتقال بدید یک وجه مشترک هست و اونم اینه که هر دو نرم افزار از زبان پرس و جوی T-Sql استفاده می کنند. بنابراین شما می تونید :

  • روی دیتابیس خودتون در Sql Server کلیک راست کنید و generate Script رو بزنید. در فرم باز شده گزینه Next رو بزنید تا به سربرگ Set Scripting Options برسید. دکمه Advanced رو بزنید و مطابق شکل Schema And Data رو انتخاب کنید تا اسکریپتی که ساخته میشه هم از دیتاها و هم از ساختار کلی دیتابیس شما باشه.

ایجاد اسکریپت از اطلاعات در sql server

 

خب در نهایت یک اسکریپت از دیتابیس دارید. حالا از این اسکریپت می تونید توی PostgreSql استفاده کنید. فقط یه سری تغییرات باید در اسکریپت بدید.

  • دستوراتی که مخصوص Sql Server هستند رو از اسکریپت پاک کنید. (مثلا Set ANSI_NULLS ON و ...)

  • در Sql Server برای کار با اشیا دیتابیس از براکت استفاده میشه. این براکتها رو با دابل کوتیشن عوض کنید.

  • اگر در اطراف types ها براکت به کار رفته حذفش کنید.

  • هر جا dbo نوشته شده با public تغییرش بدید.

  • کلیه عباراتی که در PostgreSql ساپورت نمیشن رو حذف کنید. مثلا CLUSTERED و WITH NOCHECK و ON PRIMARY و ...

  • اگر در جایی از IDENTITY برای افزایش اتوماتیک مقادیر استفاده شده عبارت INI IDENTITY رو با SERIAL تغییر بدید.

  • اگر جایی عبارت GO نوشته شده با ; تغییر بدید.

 

موارد بالا برای تبدیل اسکریپت قابل فهم برای PostgreSql مورد نیاز هست.

بهتره این موارد رو انجام بدید و اگر خطایی براتون رخ داد اون خطا رو بگید تا بررسی بشه چون اینجوری فقط میشه کلی توضیح داد.

منبع

به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
2 نظر
mshosseini : و با همین روش Entity و مایگریشن کارم رو با Postgres ادامه بدم اینو توضیح ندادین

امتیاز کاربر : 33   رتبه کاربر : 23   تاریخ ثبت : 11:40 1401/06/02
fateme : متوجه منظورتون از انتیتی یا مایگریشن نشدم. بنده روش انتقال اطلاعات از دیتابیس Sql Server به PostgreSql رو گفتم و کاری به انتیتی یا ... نداره.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 11:46 1401/06/03
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود