انتقال دیتابیس از Sql Server به PostgreSql
سلام
پروژه ای دارم که نوشته شده ولی با دیتابیس sql server هست
کارفرما ازم دیتابیس Postgres خواسته و به این دلیل که حدودا 300 میلیون رکورد دیتا هست و این که گزارشگیری های پیچیده ای داره
از بنده خواسته تمام دیتاهارو به Postgres انتقال بدم.
حالا میخواستم کمک کنین تا چطوری به آسان ترین روش ساختار دیتابیسی نرم افزار رو تغییر بدم
و با همین روش Entity و مایگریشن کارم رو با Postgres ادامه بدم
یکی از شناخته ترین نرم افزارهای مدیریت اطلاعات 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 رو انتخاب کنید تا اسکریپتی که ساخته میشه هم از دیتاها و هم از ساختار کلی دیتابیس شما باشه.
خب در نهایت یک اسکریپت از دیتابیس دارید. حالا از این اسکریپت می تونید توی PostgreSql استفاده کنید. فقط یه سری تغییرات باید در اسکریپت بدید.
-
دستوراتی که مخصوص Sql Server هستند رو از اسکریپت پاک کنید. (مثلا Set ANSI_NULLS ON و ...)
-
در Sql Server برای کار با اشیا دیتابیس از براکت استفاده میشه. این براکتها رو با دابل کوتیشن عوض کنید.
-
اگر در اطراف types ها براکت به کار رفته حذفش کنید.
-
هر جا dbo نوشته شده با public تغییرش بدید.
-
کلیه عباراتی که در PostgreSql ساپورت نمیشن رو حذف کنید. مثلا CLUSTERED و WITH NOCHECK و ON PRIMARY و ...
-
اگر در جایی از IDENTITY برای افزایش اتوماتیک مقادیر استفاده شده عبارت INI IDENTITY رو با SERIAL تغییر بدید.
-
اگر جایی عبارت GO نوشته شده با ; تغییر بدید.
موارد بالا برای تبدیل اسکریپت قابل فهم برای PostgreSql مورد نیاز هست.
بهتره این موارد رو انجام بدید و اگر خطایی براتون رخ داد اون خطا رو بگید تا بررسی بشه چون اینجوری فقط میشه کلی توضیح داد.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )