มีเครื่องมือบรรทัดคำสั่งสำหรับแปลงฐานข้อมูล MySQL เป็น PostgreSQL หรือไม่ ฉันต้องการทราบว่ามีวิธีการแปลงฐานข้อมูลโดยใช้mysqldump
คำสั่งปกติหรือไม่
มีเครื่องมือบรรทัดคำสั่งสำหรับแปลงฐานข้อมูล MySQL เป็น PostgreSQL หรือไม่ ฉันต้องการทราบว่ามีวิธีการแปลงฐานข้อมูลโดยใช้mysqldump
คำสั่งปกติหรือไม่
คำตอบ:
คุณเคยลองไหม:
mysqldump --compatible=postgresql dbname > export.sql
จากนั้นทำเช่นนี้เพื่อหลบหนีคำพูด
sed "s/\\\'/\'\'/g" export.sql > export1.sql
อาจต้องใช้การนวดเพิ่มขึ้นดังนั้นโปรดดู mysqldump doco ให้ละเอียดยิ่งขึ้น
mysqldump
เลย syntax error at or near "(" LINE 2: "id" int(10) NOT NULL,
ต่อไปนี้เป็นเครื่องมือโอเพนซอร์ซบางตัวที่มีประโยชน์มาก:
fromMySqlToPostgreSql
เป็นเครื่องมือที่เข้าถึงคุณลักษณะและใช้งานง่ายมาก
มันแมปประเภทข้อมูลโยกย้ายข้อ จำกัด ดัชนี PKs และ FK เหมือนกับที่อยู่ในฐานข้อมูล MySQL ของคุณ
ใต้ฝากระโปรงมันใช้ PostgreSQL COPY ดังนั้นการถ่ายโอนข้อมูลจึงรวดเร็วมาก
FromMySqlToPostgreSql เขียนใน PHP (> = 5.4)
pgloader เป็นเครื่องมือโหลดข้อมูลสำหรับ PostgreSQL โดยใช้คำสั่ง COPY ข้อได้เปรียบหลักมากกว่าเพียงแค่ใช้
COPY
หรือ \copy
และการใช้ Foreign Data Wrapper เป็นพฤติกรรมการทำธุรกรรมโดยที่ pgloader จะเก็บไฟล์ข้อมูลที่แยกต่างหากแยกต่างหาก แต่พยายามคัดลอกข้อมูลที่ดีในฐานข้อมูลของคุณต่อไป พฤติกรรม PostgreSQL เริ่มต้นคือการทำธุรกรรมซึ่งหมายความว่าสายที่ผิดพลาดใด ๆ ในข้อมูลอินพุต (ไฟล์หรือฐานข้อมูลระยะไกล) จะหยุดการโหลดจำนวนมากทั้งหมดสำหรับตาราง pgloader ยังดำเนินการฟอร์แมตข้อมูลตัวอย่างทั่วไปของการเปลี่ยนแปลงของ MySQL datestamps 0000-00-00 และ 0000-00-00 00:00:00 ถึง PostgreSQLNULL
ค่า (เพราะปฏิทินของเราไม่เคยมีศูนย์ปี)
มีเครื่องมือการโยกย้ายฟรีที่ค่อนข้างใช้งานง่ายพัฒนาโดย EnterpriseDB เอง สามารถติดตั้งผ่านทาง StackBuilder: Migration Toolkit
ฉันเพิ่งใช้เครื่องมือไม่ฟรีจากDBConvertเพื่อแปลงฐานข้อมูลการเข้าถึงเป็น postgres และพบว่ามันคุ้มค่ากับเงินเมื่อเทียบกับระยะเวลาที่ฉันเสียลองฟรีอย่างน่าเชื่อถือ ขายเครื่องมือที่คล้ายกันสำหรับ MySQL <-> postgresซึ่งฉันไม่ได้ใช้ แต่อาจจะคุ้มค่าในการพิจารณาเว้นแต่คุณจะสนใจเฉพาะเครื่องมือบรรทัดคำสั่ง
ในกรณีที่คุณสงสัยว่าฉันไม่ได้มีส่วนเกี่ยวข้องกับพวกเขาในทางใดทาง :-)
ตัวอย่างเช่นคุณสามารถใช้ EnterpriseDB Migration Wizard
สามารถโยกย้าย OracleDB ได้อย่างดีเยี่ยม แต่สำหรับ Mysql มีข้อ จำกัด บางประการเช่นไม่สนับสนุนมุมมองทริกเกอร์ขั้นตอนการจัดเก็บ
สำหรับข้อมูลเพิ่มเติมโปรดดูที่การกีฬาการโยกย้าย Toolkit ไม่แน่ใจ แต่สามารถโยกย้าย mysql-> oracle-> postgresql บันทึกขั้นตอนการจัดเก็บของคุณได้ (ในกรณีที่มีอยู่)
ตัวอย่างนี้: เครื่องมือการย้ายฐานข้อมูลและ SQL
นี่เป็นเพียงการเพิ่มคำตอบที่มีอยู่ซึ่งช่วยให้ฉันค้นหาโซลูชันนี้ ผมใช้FromMySqlToPostgreSql สิ่งที่คุณต้องทำคือการดาวน์โหลดและแตกไฟล์จากFromMySqlToPostgreSqlทำสำเนาของไฟล์ปรับแต่งตัวอย่างตั้งค่าการเชื่อมต่อฐานในและรันไฟล์ดัชนีด้วยคำสั่งต่อไปนี้:
php index.php config.xml
เรียบง่าย แต่มีประสิทธิภาพ!
มีเครื่องมือ opensource ที่ให้ฟังก์ชันการแปลงฐานข้อมูล MySQL เป็น Postgresql db รวมถึงดัชนี fks และข้อมูล
https://github.com/ggarri/mysql2psql
เครื่องมือนี้ช่วยให้สามารถกำหนดการเปลี่ยนแปลงสคีมาเพื่อให้คุณสามารถทำการอัพเกรดสคีมาปัจจุบันของคุณในเวลาทำงาน