Mysql'den Mssql'e Geçiş?
-
MySQL'de bulunan bir veritabanını MsSQL'e taşımak istiyorum.
SSMA adında microsoftun bir toolu var ancak aşağıdaki hatayı alıyorum:
"MySql Server Object Collector error: table : adminmenu No columns were returned from the database for table 'adminmenu'."
Sonrasında mysqldump ile mssql uyumlu dump alıp sqlcmd ile çalıştırmaya çalıştığımda yine script hata verdi (verdiği export compatible değil anlaşılan)
Napmak lazım sizce müridler?
-
adminmenu isimli tablon herhangi bir kolon döndürmedi diyor.
adminmenu isimli tablonun içeriğine bir bak, boş mudur nedir ?
-
hocam tüm tablolar için aynısını diyor. tabloların kimisi dolu, kimisi boş.
-
biz geçişte çok zorlanmıştık . umarım sız de hayırlısı ıle gecer inşallah sevaplara muvaffak olursunuz. hayırlı ramazanlar
-
navicat denedinmi ?
db çok büyük değilse taşıyo
-
hazır tool arama hocam. çok sıkıntı.
mysql de bütün table adlarını sırayla dön mssql de tablo oluşturma kodu belli. index oluşturma kodu belli.
dinamik bi foreachla oluşturursun.
toplamda 2 saatini ya alır ya almaz.
birde aynısını kayıtlar için yaparsın. kayıt sayısı fazlaysa o biraz uzun sürer. bi thread içine alırsın iki gün uğraşsın dursun :)
ben böyle yapmıştım bir zamanlar.
-
online sql kodu çevirme siteleri var hocam, ben bir ara yapmıştım sorunsuz olmuştu ama hangi siteydi bilmiyorum.. online mysql to mssql yazarsan çıkar siteler, deneyebilirsin script convert etmeyi
-
Mevzuyu çözdüm. Ancak çözene kadar pişik oldum.
Öncelikli olarak mysql to mssql free converterlar beş para etmez.
İlk olarak http://www.codeproject.com/Articles/29106/Migrate-MySQL-to-Microsoft-SQL-Server adresindeki yöntemle tüm veritabanını mssql'e yarım saat gibi bir sürede geçirdim (milyonluk tablo çoktu). Ancak bir sorun var, PK, FK, Indexes hiçbiri yok.
Devamında yukaridaki sorguyu değiştirdim ve sadece tabloları create ettirdim.
Devamında tüm tablolara PK'leri ekledim.
İkinci olarak column type conversationlarla ilgili problemler yaşadım, onlar artık spesifik konular. Tablo create işlemi sonrası değişen kolon veritiplerinize bakıp elle müdehale gerekebiliyor.
Üçüncü olarak tüm verileri sorgu ile Mssql'e geçirdim ve tek tek elle FK'leri girmeye başladım.
Benim veritabanımda 90 tablo vardı ve kaç FK var hatırlayamıyorum :) Ancak baya meşakatli sürdü.
Belki storeprocedure yazılarak mssql'e tablo convert edilirken FK'lerinde taşınması sağlanabilir ancak yine bazı problem çıkacaktır. Uğraşılsa basit bir script veya tool yazılabilir.
tabloları elle create edip foreach ile gömmeyi denedimde hocam ona can dayanmıyor insert insert insert bitmiyor insert belki ufak verili sistemlerde kullanılabilir.
Belki merak eden olmuştur neden Mysql'den Msssql'e geçtim?
Tek sebebi Entity Framework 6, .Net 4.0 ikilisi. Proje EF 4.0'de çalışıyordu ve artık sorunlar çıkmaya başlamıştı. Mysql connectoru 6.5.4 üstüne çıkaramıyordum. EF 6'ya geçince Mysql ile uyumsuzluklar meydana geldi. Model create edemedi cart curt etti deli oldum. İlerleyen süreçte herhangi bir destek sıkıntısı ve sorun yaşamamak için komple mssql'e geçmeyi uygun buldum...
(allah kimseyi migrationla sınamasın)
-
-
serseri_1453 bunu yazdı
ücretli uygulamalara hiç bakmadım hocam. ilerde lazım olursa bi göz atar kulaklarını çınlatırım :)
-
sen istediğin ucretli proyu yaz bana hangisini istiyorsan ben bulup veririm:)
