برنامه نویس پایتون :) با من میتونید از طریق fhot707@gmail.com در ارتباط باشید.
مهاجرت از mysql به postgresql بدون ازدست رفتن اطلاعات
سلام دوستان. وقت بخیر
میخوایم توی این نوشته/آموزش/مقاله/هرچی که اسمش هست یاد بگیریم که چطوری بدون ازدست رفتن اطلاعات از mysql به postgresql مهاجرت کنیم.
اگه توی نت سرچ کنیم چنتا روش مختلف میاره که خب هم وقتتونو میگیره هم یه عالمه وقتتونو میگیره.
من شخصا 3 روزه درگیرش هستم و کلی وقتم رو گذاشتم و تا نیم ساعت قبل از نوشتن این مطلب درگیرش بودم و انقد بهم سخت گذشت که اومدم زودتر بنویسمش که بلکه ینفر دیگه زودتر راحت شه!
داستان از اونجایی شروع شد که من یه پروژه جنگو با mysql داشتم و خب همونطور که میدونیم توی جنگو mysql به خوبیpostgresql عمل نمیکنه و سرعتش کمتره( نمیگم mysql سرعتش کمه!توی جنگو اینطوریه)
حالا شما هم به هر علتی ممکنه این مشکل رو توی هر پروژه ای داشته باشین.
بریم سراغ اصل مطلب.
اول بگم که مهم نیست سیستم عاملتون چی باشه مال من گنو/لینوکس توزیع مانجارو هست .
اما توی ویندوز هم میتونید اینکارو انجام بدین.
اول نیاز داریم که موارد زیر توی سیستمتون نصب باشه:
JDK 1.8 and above (Java Development Kit)
libwebkitgtk-1.0-0 (لینوکس)
حالا باید نرم افزار pentaho Data Integration رو دانلود و نصب بکنیم.
لینکش هم این هست:
هم ویندوز و هم لینوکس باید همینو دانلود و نصب کنن. طبیعتا من قرار نیست نصبش رو یادتون بدم نصبش خیلی آسون هست و آموزشش هم اینجا هست:
https://help.pentaho.com/Documentation/8.0/Setup/Installation/Tools/PDI_Client_and_plugins
اگر خاستین زرنگی کنید و برید از snap نصب کنید خب باید بگم که کور خوندید و قراره به ارور بخوریم.
بعد از نصب برنامه رو اجرا کنید و مراحل زیر رو دنبال کنید.
- از سربرگ fileیدونه job بسازید
- یه کانکشن به دیتابیس اول ینی mysql بزنید! از این مسیر: Tools -> Wizard -> Create database connection
- حالا باز مثل مرحله قبل به دیتابیس دوم ینی postgresql کانکشن بزنید.
خب احتمالا توی مرحله 2 یه ارور دارید برای کانکت شدن به mysql یه ارور خیلی بزرگ که داره میگه:
Error connecting to database [MySQLConnetion] :
org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Driver class 'org.gjt.mm.mysql.Driver' could not be found,
make sure the 'MySQL' driver (jar file) is installed.
اولش یه همچین چیزیه!
اگه باز هم فکر کردید که خیلی زرنگ هستید و رفتید از snap craft نصب کردید نمیتونید حلش کنید یا حداقل من نتونستم!
توی فایل های این برنامه یه پوشه هست به اسمlib باید از لینک زیر فایل مورد نیازش رو دانلود کنید و بذارید توی این پوشه:
https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.48.zip
درحال حاضر آخرین ورژن mysql connector همین هست میتونید سرچ کنید اگر ورژن جدید تر داره دانلودش کنید.
بعد از unzip کردن دوتا فایل .jar داره که باید تو پوشه lib کپی کنید.
حالا برنامه رو restart کنید و دوباره مرحله هارو انجام بدید نباید هیچ اروری بده!
بعد از ساختن کانکشن ها باید بریم و table های mysql رو کپی کنیم توی postgresql.
از مسیر :Tools -> Wizard -> Copy Tables
اسم کانکشن هارو میاره سمت چپ اسم کانکشن mysql رو انتخاب کنید و سمت راست اسم کانکشن postgresql
اسم هارو موقع ساخت کانکشن خودتون نوشتید.
بعد بزنید next
میبینید که لیست table هارو میاره مثل شکل زیر
با فلش میتونید تیبل مورد نظر رو اضافه کنید که کپی بشه!
مرحله بعد یسری پروسس انجام میده و یه شکل بهمون نشون میده مثل شکل زیر:
سمت چپ بالا یه آیکون play یا همون start داره که وقتی بزنیم شروع میکنه به کپی کردن.
تمام.
نکته:
1.دیتا بیس دوم (postgresql) نباید تیبل انتخابی رو داشته باشه!
2.اگر تیبل توی دیتابیس هست اول باید drop کنید و این برنامه خودش براتون میسازه تیبل رو!
3.ترجیحا همه table هارو انتخاب کنید که هیچ dependency جا نیوفته و به ارور و مشکلی نخورید.
اگر همه مراحل رو با دقت انجام بدید نباید مشکلی پیش بیاد! الان سایت من به خوبی داره با postgresql
کار میکنه
سایت من یه سایت دانلود فیلم هست که به علت اضافه کردن یه فروشگاه احساس کردم خیلی کنده و باید یکم بهتر بشه.
این هم آدرس سایت: https://vdmovie.ir
این هم آدرس فروشگاه: https://dreamland.pw
این دوتا آدرس فقط روی یه پروژه جنگو هستن و از یه دیتابیس استفاده میکنن.
اگر دوست داشته باشید میتونم آموزش ایجاد چند سایت توی یه پروژه جنگو رو هم آموزش بدم.
اگر اشکالی توضیحی پیشنهاد و هرچیز دیگه ای بود توی کامنت ها برام بنویسید:)
مطلبی دیگر از این انتشارات
شرایط اخذ ویزای کاری آذربایجان
مطلبی دیگر از این انتشارات
چه نمره ای در آزمون تافل مناسب است !؟
مطلبی دیگر از این انتشارات
کشور های ارزان برای تحصیل در خارج از کشور