理清思路
现在我们分为两大个步骤:
1、创建分库,并在分库中创建分表。
2、能指定用户的数据到特定的库和表。
现在我们有两个数据库了:
1、test库:里面存放了公共访问的数据表,因此在python我们需要有一个公共数据源。
2、test_1分库:里面存放的是需要分表的表和数据,因此我们需要一个用户原数据所在的数据源。
3、test_n分库:此库是用户的数据需要迁移到其他库的库,因此我们需要一个数据迁移的目录库数据源。
主执行过程if __name__=='__main__':
# 设置默认的数据库链接参数
db_config_common = {
'user' : 'root',
'password': 'root',
'host' : '127.0.0.1',
'port' : 3306,
'database': 'test'
}
# 配置用户数据所在数据库源
db_config_from = {
'user' : 'root',
'password': 'root',
'host' : '127.0.0.1',
'port' : 3306,
'database': 'test_1'
}
# 配置用户数据迁移目标数据目录
db_config_from = {
'user' : 'root',
'password': 'root',
'host' : '127.0.0.1',
'port' : 3306,
}
sharding = ShardingDatabase()
# 设置公共数据库配置
sharding.get_conn_cursor(db_config_common, 'common')
# 设置用户原数据数据库配置
sharding.get_conn_cursor(db_config_from, 'from')
# 设置用户目标数据库配置
sharding.get_conn_cursor(db_config_to, 'to')
# 创建分库
db_config_to.pop('database')
sharding.create_db(db_config_to)
# 向分库中创建分表
max_num = sharding.get_max_sharding_table_num()
sharding.create_tables(begin = 1, offset = max_num, force=True)
执行分库程序python sharding_database.py
python sharding_database.py
执行后结果SHOW DATABASES;
+--------------------+