# if a socket is specified we will use that
# if tcp is chosen you can use compression
mysql:
hostname: localhost
port: 3306
socket: /tmp/mysql.sock
username: mysql2psql
password:
database: mysql2psql_test
compress: false
destination:
# if file is given, output goes to file, else postgres
file:
postgres:
hostname: localhost
port: 5432
username: mysql2psql
password:
database: mysql2psql_test
用法:
> py-mysql2pgsql -h
usage: py-mysql2pgsql [-h] [-v] [-f FILE]
Tool for migrating/converting data from mysql to postgresql.
optional arguments:
-h, --help show this help message and exit
-v, --verbose Show progress of data migration.
-f FILE, --file FILE Location of configuration file (default:
mysql2pgsql.yml). If none exists at that path,
one will be created for you.
"mediumtext" -> "text", "^LOCK.*" -> "", "^UNLOCK.*" -> "", "`" -> '"', "'" -> "''" in 'data', "0000-00-00" -> "2000-01-01", deduplicate constraint names, " CHARACTER SET utf8 " -> " ".
"int(10)" -> "int" was missed in the last table, so pass that part of the mysqldump through http://www.sqlines.com/online again.
9条答案
按热度按时间m0rkklqb1#
有一个
mysqldump
选项可以输出PostgreSQL代码:但效果不太好。
相反,请将mysql-to-postgres工具视为described in Linus Oleander's answer。
sgtfey8w2#
试试这个,效果很好!!
qc6wkl3g3#
在谷歌上搜索了一段时间后,我找到了this post。
1.使用
[sudo] gem install mysql2psql
安装mysql2psql gem。1.通过运行
mysql2psql
创建一个配置文件。你会看到一个错误,但是mysql2psql.yml
文件应该已经被创建了。1.编辑
mysql2psql.yml
1.再次运行
mysql2psql
以迁移数据。提示:如果您希望在迁移数据之前清除postgresql数据库,请在
mysql2psql.yml
配置文件中将force_truncate
设置为true
。wljmcqd84#
在Debian或Ubuntu上安装pgloader:
以postgres用户身份登录并创建数据库
将数据从mysql数据库传输到postgresql
型
同时检查Dimitri Fontaine's rewrite of pgloader from python to common lisp,以便他能够实现真实的的线程。
在其他平台上安装
brew install --HEAD pgloader
.a1o7rhls5#
我用的是py-mysql2pgsql,安装后只需要简单的yml格式的配置文件(源,目的),例如:
用法:
更多信息请访问其主页https://github.com/philipsoutham/py-mysql2pgsql。
camsedfj6#
看看PG Foundry,Postgres的额外实用程序往往就在那里,我相信你要找的工具确实存在。
oyxsuwqo7#
有一个付费软件在这个postgresql页面上列出:http://www.postgresql.org/download/products/1
这是在pgFoundry上http://pgfoundry.org/projects/mysql2pgsql/
6qqygrtg8#
This page列出了语法差异,但我还没有找到一个简单的工作查询转换器。使用ORM包代替原始SQL可以防止这些问题。
我目前正在为一个遗留代码库编写一个转换器:
对于
CREATE
语句,SQLines可以在线转换大部分语句。不过,之后我仍然需要编辑mysqldump:vpfxa7rd9#
你很可能永远不会得到一个工具来完成这样的任务,它会为你做所有的工作。准备好自己做一些重构工作。