MySQL veritabanını PostgreSQL'e dönüştürmek için herhangi bir komut satırı aracı var mı? Ayrıca normal mysqldump
komutu kullanarak veritabanını dönüştürmek için bir yol olup olmadığını bilmek istiyorum .
MySQL veritabanını PostgreSQL'e dönüştürmek için herhangi bir komut satırı aracı var mı? Ayrıca normal mysqldump
komutu kullanarak veritabanını dönüştürmek için bir yol olup olmadığını bilmek istiyorum .
Yanıtlar:
denedin mi:
mysqldump --compatible=postgresql dbname > export.sql
sonra tırnak kaçmak için bunu yapın
sed "s/\\\'/\'\'/g" export.sql > export1.sql
biraz daha masaj gerekebilir bu yüzden mysqldump doco daha yakından bakmak.
mysqldump
henüz kimse sabit değil . syntax error at or near "(" LINE 2: "id" int(10) NOT NULL,
İşte size yardımcı olabilecek birkaç açık kaynak araç:
FromMySqlToPostgreSql
bir özellik erişim aracı ve kullanımı çok kolay.
Veri türlerini eşler, kısıtlamaları, dizinleri, PK'ları ve FK'leri tam olarak MySQL db'nizdeki gibi taşır.
Kaputun altında PostgreSQL COPY kullanıyor, bu nedenle veri aktarımı çok hızlı.
PHP'de yazılmış FromMySqlToPostgreSql (> = 5,4).
pgloader , COPY komutunu kullanarak PostgreSQL için bir veri yükleme aracıdır. Sadece kullanmaya göre ana avantajı
COPY
veya \copy
ve bir Yabancı Veri Sarıcısı kullanarak, pgloader'ın reddedilen verilerin ayrı bir dosyasını saklayacağı, ancak veritabanınıza iyi verileri kopyalamaya çalıştığı işlem davranışıdır. Varsayılan PostgreSQL davranışı işlemseldir, yani giriş verilerindeki (dosya veya uzak veritabanı) hatalı satır tablo için toplu yükün tamamını durduracaktır. pgloader ayrıca MySQL tarih damgalarının 0000-00-00 ve 0000-00-00 00:00:00 PostgreSQL'e dönüştürülmesinin tipik bir örneği olan veri yeniden biçimlendirmesini uygularNULL
(takvimimizde hiç bir yıl sıfır olmadı).
Aslında, EnterpriseDB tarafından geliştirilen, kullanımı oldukça kolay olan ücretsiz bir taşıma aracı var. StackBuilder: Migration Toolkit aracılığıyla kurulabilir
Son zamanlarda bir erişim veritabanı postgres dönüştürmek için DBConvert ücretsiz olmayan bir araç kullanın ve iyi güvenilir bir şekilde ücretsiz olarak yapmaya çalışırken boşa zaman miktarına göre para değerinde bulundu. Kullanmadığım MySQL <-> postgres için benzer bir araç satmak , ancak sadece komut satırı araçlarıyla ilgilenmediğiniz sürece dikkate değer olabilir.
Merak ediyorsanız ben onlara hiçbir şekilde bağlı değilim :-)
Örneğin, EnterpriseDB Geçiş Sihirbazı'nı kullanabilirsiniz.
OracleDB'yi sempatik olarak taşıyabilir. Ancak Mysql için bazı sınırlamaları vardır, örneğin, görünümleri, tetikleyicileri, saklı prosedürleri desteklemez.
Daha fazla bilgi için bkz. EDB Geçiş Araç Seti . Emin değilim, ancak saklı yordamlarınızı (varsa) kaydederek mysql-> oracle-> postgresql göç etmek mümkün olabilir.
Grep this: Veritabanı ve SQL Geçiş Araçları
Bu, sadece bu çözümü bulmama yardımcı olan mevcut cevaplara eklemek içindir. FromMySqlToPostgreSql kullandım . Tek yapmanız gereken FromMySqlToPostgreSql dosyasını indirip ayıklamak , örnek yapılandırma dosyasının bir kopyasını oluşturmak, içindeki db bağlantı değerlerini ayarlamak ve dizin dosyasını aşağıdaki komutla çalıştırmaktır:
php index.php config.xml
Basit ama etkili!
MySQL db'yi Postgresql db'ye, indeksler, fks ve veriye dönüştürmek için işlevsellik sağlayan bir açık kaynak aracı vardır.
https://github.com/ggarri/mysql2psql
Bu araç aynı zamanda şema değişikliklerini tanımlamanıza izin verir, böylece mevcut şemanızda çalışma zamanında bazı yükseltmeler yapabilirsiniz.