mysql的在线模式更改

onlineschemachange的Python项目详细描述


onlineschemachange是一个为mysql表进行模式更改的工具 以非阻塞方式

示例

OSC必须与mysql服务器在同一主机上运行。

copy模式

< P>数据库下面有一个现有的表名为{TT3}$ test

CREATETABLE`my_table`(`id`int(11)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=latin1

如果我们想逃跑 ALTER TABLE ``my_table添加列datavarchar(10);``针对 它。我们不需要将ALTER TABLE语句提供给osc,只需要 将表示所需架构的CREATE TABLE语句放入 文件/tmp/foo.sql如下:

CREATETABLE`my_table`(`id`int(11)NOTNULL,`data`varchar(10)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=latin1

然后运行以下命令:

osc_cli copy --ddl-file-list=foo.sql --socket=/tmp/mysql.socket --database=test

cleanup模式

清理上次运行OSC留下的表

osc_cli cleanup --socket=/tmp/mysql.socket --database=test

终止某些mysql上当前运行的OSC进程 实例:

osc_cli cleanup

direct模式

此模式是为将mysql的本地联机ddl用于模式而保留的。 更改,并帮助dba管理所有与模式相关的操作 一个工具。现在,如果您计划对所有架构使用OSC。 管理,此模式用于创建空的新表。 下面的命令将在数据库中创建一个空表test

osc_cli direct --ddl-file-list=foo.sql --socket=/tmp/mysql.socket --database=test

要求

OnlineSchemaChange需要

系统包

对于python2

sudo apt-get install python-dev libmysqlclient-dev # Debian / Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS

对于Python3

sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS

python需求*python>;=2.7*python模块:6, pyparsingMySQLdb

安装Online SchemaChange

运行以下命令安装依赖项

python setup.py install --install-scripts=/usr/local/bin

如果您的环境中有多个可用的python版本,或者 您不想弄乱系统的默认python,可以使用 pyenvvirtualenv

联机SchemaChange的工作原理

查看wiki页面了解更多详细信息和一些高级用法。

如何贡献

检查这个wiki page 如果你想为这个项目做贡献。

许可证

OnlineSchemaChange已获得BSD许可。我们还提供了一项附加专利 格兰特。

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

推荐PyPI第三方库


热门话题
java如何在springmvc POST webservice中验证集合?   java将变量传递到@Optional注释   浮点Java字节到浮点   java为什么我的结果字符串在解析json数据后不打印到logcat?   多线程应用程序中的java可选调试输出是为客户机提供的,而不是为了找出死锁或bug   java Hibernate模型对象作为VO对象   java字体未应用于复选框并切换到Android Studio 3   list Java equals方法无法按预期工作   java将未知对象强制转换为特定接口可以吗?   调用后未擦除方法中的Java变量   数组求和不正确,线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:100   java超级类应该实例化并调用其子类吗?   在java apache中。平民io,如何避免读取旧的日志消息   BuffereImage如何使用apache在TIFF图像中保持透明性。平民java中的图像处理   java转换。将文件分类为二进制代码(1和0)   Java:。类搜索器   java如何使用谓词生成器返回“Todays Orders”