mysql数据库更新
在使用mysql数据库的时候,A方使用一个版本,B方在使用一个版本数据库进行开发使用,B方在开发的时候,有新的需求,需要添加表字段和所需要的表。但是A方已经在使用之前的版本数据库并且数据库里面有真实的数据,这个时候B方添加的数据如何更新在A方上面,所以写个数据库更新脚本,A方数据库版本与B方更新添加的数据库结构进行对比。添加了哪些字段,哪些表格。
# 在项目根目录下创建一个脚本文件
updata_database.py
from web.settings import DATABASES
import pymysql host = DATABASES["default"]["HOST"]
port = DATABASES["default"]['PORT']
user = DATABASES["default"]['USER']
password = DATABASES["default"]['PASSWORD']
name = DATABASES["default"]["NAME"]
db=pymysql.connect(host= host, port=int(port), user=user, passwd=password, db=name)
cur=db.cursor() sqls=[
"SET FOREIGN_KEY_CHECKS=0",
"alter table info_person_basic add real_estate text", #新添加的字段
"alter table auth_user rename to user_profile_user", #修改表名
"alter table user_profile_user add (bind_addr varchar(30) DEFAULT NULL,last_login_addr varchar(30) DEFAULT NULL)", #新添加的字段
"alter table auth_user_groups rename to user_profile_user_groups", #修改表名
"alter table auth_user_user_permissions rename to user_profile_user_user_permissions", #修改表名
'''
CREATE TABLE `login_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login_status` varchar(50) NOT NULL,
`user_agent` varchar(500) DEFAULT NULL,
`remote_addr` varchar(30) DEFAULT NULL,
`login_date` datetime(6) NOT NULL,
`user_id_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `login_log_user_id_id_2117abc3_fk_user_profile_user_id` (`user_id_id`),
CONSTRAINT `login_log_user_id_id_2117abc3_fk_user_profile_user_id` FOREIGN KEY (`user_id_id`) REFERENCES `user_profile_user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; #创建新的表
''',
'''
CREATE TABLE `schedulers_task` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Task` varchar(200) NOT NULL,
`State` int(11) NOT NULL DEFAULT '1',
`CreateUserId` varchar(200) DEFAULT NULL,
`CreateTime` datetime DEFAULT NULL,
`Args` longtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
''',
'''
CREATE TABLE `statistics_analyze` (
`key` varchar(200) NOT NULL,
`value` longtext,
PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; #创建新的表
''',
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_uid (`uid`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_id (`person_id`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_name (`person_name`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_sex (`person_sex`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_contact_number #为搜索字段创建索引(`person_contact_number`)",
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_brithday (`person_birthday`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_email (`person_email`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_org_name (`org_name`)", #为搜索字段创建索引
"ALTER TABLE `info_person_basic` ADD INDEX info_person_basic_org_address (`org_address`)", #为搜索字段创建索引
"SET FOREIGN_KEY_CHECKS=1"
] idx = 0
for sql in sqls:
idx += 1
try:
cur.execute(sql)
print "Successfully run sql %d." % idx
except Exception,e:
print "Warning: run sql failed:", str(e) cur.close()
更新脚本文件 updata_database.sh
#备份数据库
mysqldump -uroot -B mysql > update_database.sql
mysql数据库更新的更多相关文章
- Python之mysql数据库更新表数据接口实现
昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据. 先码为敬~~~~~~~ # -*- coding: utf-8 -*- import pymysql import settings ...
- 【记录】Mysql数据库更新主键自增
语法:id从1000开始自增: ALTER TABLE 表名 AUTO_INCREMENT = 1000;
- Mysql数据库中的计数器表实时更新
如果某个应用中存在计数器,例如网站的总访问量.用户的粉丝数.文件下载数等等.如果相关应用在Mysql数据库的表中保存计数器,在更新计数器的时候可能会碰到并发问题.例如在web应用中,记录网站的点击次数 ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作
1.环境数据准备: python3环境.pymysql模块 mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码pas ...
- 覆盖Django mysql model中save方法时碰到的一个数据库更新延迟问题
最近有一个需求,通过django的admin后台,可以人工配置5张表的数据,这些数据进行一些业务规则处理后会统一成一份数据缓存在一个cache之中供服务端业务访问,因而任何一张表的数据更新(增.删.改 ...
- MySQL 学习笔记(二):数据库更新、视图和数据控制
基础准备: 在 school 数据库下建立student.course.sc 三个表: create table student( Sno ) primary key, Sname ) unique, ...
- Canal 实战 | 第一篇:SpringBoot 整合 Canal + RabbitMQ 实现监听 MySQL 数据库同步更新 Redis 缓存
一. Canal 简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同 ...
- MySQL数据库知识点整理 (持续更新中)
一.修改用户密码 格式(在命令行下输入):mysqladmin -u 用户名 -p旧密码 password 新密码 1. 给root添加密码ab12: mysqladmin -uroot -pass ...
随机推荐
- 在Ubuntu下利用Eclipse调试FFmpeg
[编辑]第一步:准备编译环境 .tar.bz2 -2245/ ./configure -linux-i586.tar.gz 解压后得到jre1.7.0_17目录 最后通过java -version检查 ...
- hibernate 注解之 SequenceGenerator
hibernate 注解之 SequenceGenerator https://blog.csdn.net/zgf19930504/article/details/54694807 JPA @Id 和 ...
- Netty实战
一.Netty异步和事件驱动1.Java网络编程回顾socket.accept 阻塞socket.setsockopt /非阻塞2.NIO异步非阻塞a).nio 非阻塞的关键时使用选择器(java.n ...
- redis-windows和linux下安装
Window 下安装 下载地址:https://github.com/dmajkic/redis/downloads. 下载到的Redis支持32bit和64bit.根据自己实际情况选择,将64bit ...
- Ant自己主动编译打包&公布 android项目
Eclipse用起来尽管方便,可是编译打包android项目还是比較慢,尤其将应用打包公布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自己主动编译打包了 ...
- xcode编译时,有第三方库时,编译设置build active architecture only问题
本文转载至 http://blog.csdn.net/ysysbaobei/article/details/16371263 编译静态库 1.http://blog.csdn.net/dengdeng ...
- iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯
本文转载至 http://blog.csdn.net/remote_roamer/article/details/7261490 WebViewJavascriptBridge 项目的 官网 http ...
- Unity 插件收集(持续更新)
MGS Machinery Unity绑定机械关节,铰链,机构插件包. MGS Mechanical Drive 用于绑定场景中的机械驱动器的Unity插件 Unity Wave Propa ...
- 大华NVR设备接分别入宇视摄像机Onvif和RTSP主子码流的方案说明
需求提要 1.各个内网现场有多种网络摄像机IPC和网络硬盘录像机NVR设备: 2.需要将这些设备统一接入到云端中心平台,进行统一的视频直播和录像回放管理: 3.由于目前IPC设备都属于高清设备,主码流 ...
- android菜鸟学习笔记21----ContentProvider(一)ContentProvider的简单使用
ContentProvider是Android四大组件之一,它用来封装数据,并通过ContentResolver接口将数据提供给其他应用.只有当需要在多个应用之间共享数据时才会用到ContentPro ...