tornado-版本迁移工具alembic
pip install pymysql
pip install sqlalchemy
pip install alembic
1.connect db_config.py
#coding=utf-8
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 连接数据库的数据
HOSTNAME = '127.0.0.1'
PORT = ''
DATABASE = 'tornado1'
USERNAME = 'admin'
PASSWORD = 'Root110qwe'
# DB_URI的格式:dialect(mysql/sqlite)+driver://username:password@host:port/database?charset=utf8
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,
PASSWORD,
HOSTNAME,
PORT,
DATABASE
) # 1、创建一个engine引擎
engine = create_engine(DB_URI, echo=False )
# 2、sessionmaker生成一个session会话类
Session = sessionmaker(bind=engine)
# 3、创建一个session会话实例
dbSession = Session()
# 4、创建一个模型基类
Base = declarative_base(engine)
2.建立模型
from sqlalchemy import Column, Integer, String, DateTime from libs.db.db_config import Base class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50), unique=True, nullable=False)
password = Column(String(50), nullable=False) def __repr__(self):
return '<User #{}: {}>'.format(self.id, self.name)
3.alembic的使用 参考资料:https://segmentfault.com/a/1190000014643385
在项目主目录下执行命令:初始化 alemibic init name
需要修改alembic.ini 文件 line 38
# sqlalchemy.url = driver://user:pass@localhost/dbname
sqlalchemy.url = mysql+pymysql://root:password@localhost:3306/tornado_db1
需要修改env.py文件 line 20
sys.path.append(os.getcwd())
from models.auth.model import Base # note: 该Base必须从表model中导入,而不能从之外的地方导入(会找不到表,迁移为空) target_metadata = Base.metadata
再执行命令:记录版本 alembic revision --autogenerate -m "add user model"
更新数据到数据库:alembic upgrade head
另外版本管理:
alembic history 查看版本
alembic downgrade -n 回退n个版本
alembic upgrade +n 前进n个版本
tornado-版本迁移工具alembic的更多相关文章
- RAD 版本迁移工具,不怕升级麻烦了。
		RAD 版本迁移工具,不怕升级麻烦了. http://community.embarcadero.com/blogs?view=entry&id=8865 migrationtool.exe ... 
- SpringBoot整合Flyway(数据库版本迁移工具)
		简介 在团队开发当中,有可能每个人都是使用自己本地的数据库.当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新. Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的). ... 
- flask-admin章节三:数据库迁移工具 alembic初步使用
		1. 概述 基于flask框架构建web,一般会使用sqlchemy(在flask中使用sqlchemy可以参考这里)作为数据库引擎. 这样业务的逻辑就可以做到不跟具体的数据库类型相耦合,具体后端业务 ... 
- jupyter依赖tornado版本
		使用jupyter莫名奇妙出现500错误,发现是更新tornado出了问题,我的jupyter版本是5.7.4不支持6.x版本的tornado,回退到5.x版本的tornado就好了. pip ins ... 
- Flyway:数据库版本迁移工具的介绍
		目录 Flyway介绍 Flyway的工作模式 Flyway的使用场景 命令行 使用Maven或Gradle插件 migrate clean info validate baseline Java A ... 
- 潭州课堂25班:Ph201805201 tornado 项目 第四课  增加用户注册登录(课堂笔记)
		tornado 相关说明 在 handlers 中创建个 auth.py 用来做用户登录,在这文件中创建个类,并逐步完善 在 tornado 中创建 login.html 文件,是个登录页面 {% e ... 
- alembic 数据库管理
		alembic简介 Alembic是SQLAlchemy作者编写的Python数据库迁移工具 安装 pip install alembic alembic 操作流程 初始化 alembic init ... 
- Tornado中Cookie过期问题
		首先,web应用程序是使用HTTP协议进行数据传输,因为HTTP协议是无状态的,所以一旦提交数据完成后,客户端和服务器端的连接就会被关闭,再次进行数据的交换就得重新建立新的连接,那么,有个问题就是服务 ... 
- [tornado]使用webscoket的使用总是403错误
		使用的tornado版本为4.0+ 后台: PS D:\CodeHouse\tornado\websocket> python .\ws_app.py WARNING:tornado.acces ... 
随机推荐
- Qsys 设计流程---Qsys System Design Tutorial
			Qsys 设计流程 ---Qsys System Design Tutorial 1.Avalon-MM Pipeline Bridge Avalon-MM Pipeline Bridge在slave ... 
- 第一个javascript
			系统:windows10 编辑器:NotePad++ 首先开启浏览器的javascript,我的是google浏览器,步骤:设置--高级设置--内容设置--选中“允许所有网站使用javascri ... 
- vue之v-show与v-if的区别
			为什么data必须返回函数? v-show和v-if的区别 v-if只有在满足条件时才渲染元素,v-show无论是否满足条件都会渲染元素,都会对元素样式的display属性进行控制. v-if可以绑定 ... 
- ubuntu16.04下sublime text 3之安装和配置
			1.安装方法 1)使用ppa安装 sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt ... 
- java高并发编程(二)
			马士兵java并发编程的代码,照抄过来,做个记录. 一.分析下面面试题 /** * 曾经的面试题:(淘宝?) * 实现一个容器,提供两个方法,add,size * 写两个线程,线程1添加10个元素到容 ... 
- PAT 乙级 1048 数字加密(20) C++版
			1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ... 
- unittest框架 assertEqual 报错 让其出现中文的方法(这个问题出现时 我找了老半天) 还追加了 报错信息自定义的方法
			1,发现如果assertEqual里面放的是变量,不会展示中文出来 2,放的是中文(注意前面加u)就可以展示中文出来 改进后的方法:(可以放入变量去对比还可以展示中文的方法) 
- hadoop长时间运行后,stop-all.sh报错
			报错现象: hadoop在stop-all.sh的时候依据的是datanode上的mapred和dfs进程号. 而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右 ... 
- [转][C#]手写 Socket 服务端
			private void OpenSocket(int port) { Task.Factory.StartNew(() => { server = new Socket(AddressFami ... 
- redis集群服务启动
			1 启动redis服务器 redis-server.exe redis.windows.conf 需要配置config节点的bind ip 2 启动redis集群 开启redis.xx.conf 服务 ... 
