将PostgreSQL数据库中的数据复制到MySQL

psql2mysql的Python项目详细描述


#description
`psql2mysql`提供了一些工具,用于将数据从postgresql迁移到
mariadb。该工具的主要目标是将
an[openstack]部署(https://www.openstack.org)的数据库从postgresql迁移到
mariadb。但它也应该适用于其他数据库。

该工具本身基于sqlalchemy,它是内置的类型抽象,可以处理两个数据库之间的一些差异。

目前它专注于从postgresql迁移到mariadb。其他类似于
的mysql数据库还没有经过测试。也没有实现
迁移(mariadb到postgresql)的相反方向。但是,这两个特性都应该易于添加。


venv/bin/activate
pip install-r requirements.txt
python setup.py install
````

``先决条件
*在使用“psql2mysql”进行迁移之前,目标数据库和所有的
表都已经存在。如果目标< BR/>和目的数据库兼容,则BR/**‘PSQL2MySQL’当前不做任何检查。在迁移
openstack数据库的情况下,假设在运行“psql2mysql”之前已经调用了openstack服务的相应数据库同步工具(例如
“keystone manage db_sync”)。
*为源数据库提供的标识需要有足够的
权限来读取指定的数据库。
*除写访问外,为目标数据库提供的标识需要在迁移期间临时禁用约束和外键的特权。


在源数据库的表上。目前
只搜索所有文本列中与mariadb的“utf8”编码不兼容的字符。打印出包含不兼容字符串的行(和受影响的列)


*`migrate`

运行acutal迁移。将遍历数据库表
,并将所有行迁移到目标数据库。

*`purge tables`

清除目标数据库中的所有表。具有与
alembic和sqlalchemy migrate相关名称的表将被跳过并且不会被清除。此子命令
可以在迁移尝试失败后选择性执行。在开始从源数据库复制任何数据之前,`migrate`
子命令还将以相同的方式清除目标数据库中的所有表。但是,由于
该操作可能需要花费大量时间,因此在“migrate”之前单独运行“purge tables”子命令以减少源数据库的总体停机时间可能是有意义的。


数据库,排除软删除的
行。默认设置为true。

*`batch`


在一次运行“psql2mysql”时处理更多数据库。此选项的参数
是指向yml文件的路径,该文件列出了一组数据库及其源和目标连接字符串。YML文件的格式是:

```
database1:
source:database1的source uri
target:database1的target uri
database2:
source:database2的source uri

````

*`chunk size`

一次
的行数。默认大小为“10000”。此选项可更改块大小。

g和迁移将
一次性迁移整个表。请注意,这将使用更多的RAM。

预检查```


执行实际迁移:
```
psql2mysql\
--源postgresql://neutron:secret@192.168.1.1/neutron\
--目标mysql+pymysql://neutron:evenmoresecret@192.168.1.2/neutron?charset=utf8\
migrate
```

>要迁移批处理文件中的所有数据库:

```psql2mysql--batch databases.yml migrate```


testing
`psql2mysql`提供了一个测试套件。要运行测试,请使用:

`` noestests``





欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为扫描器的输入生成字符序列   hibernate中的java实体合并   如何使变量在Java文件中成为全局变量   java JVM崩溃“异常访问冲突”   向MediaMetadataRetriever中的setDataSource()发送Uri时发生java IllegalArgumentException   java没有节约协议?   用户界面java gui帮助actionlistener   java索引越界异常,即使大小小于索引?   在C++中使用java的困惑   在普通java编码中插入图像   JDBC上的java缓存数据   在Java中,在字符串的特定位置替换子字符串   java在运行elasticsearch集群时遇到Perm Gen空间问题   java Soap故障跟踪   java拆分器。固定长度(int)。拆分(字符串)   java获取jar内部包的路径