python的flask框架mysql資料庫遷移
最近在學習《flaskweb開發》,教程裡採用 sqlite 資料庫,我自己用的是mysql,在到資料庫遷移部分有點懵了,想跳過去,但是到後面發現很不方便,於是折騰了好長時間,網上也找不到現成的教程,於是想著自己搞一下試試,終於大功告成!
1.框架
flask_migrate
flask_sqlalchemy
2.然後是一些配置
/config.py
class Config(object):
CSRF_ENABLED = True
SECRET_KEY = 'you-will-never-guess'
@staticmethod
def init_app (app):
pass
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/test'
config = {
'development': DevelopmentConfig,
'default': DevelopmentConfig
}
/manager.py
from app import create_app,db
from app.models import User #註冊資料庫模型
from flask_script import Manager, Shell
from flask_migrate import Migrate, MigrateCommand #載入migrate擴充套件
app = create_app( 'default')
manager = Manager(app)
migrate = Migrate(app, db) #註冊migrate到flask
manager.add_command('db', MigrateCommand) #在終端環境下新增一個db命令
if __name__ == '__main__':
manager.run()
/app/init.py
from flask import Flask
from config import config
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app(config_name):
""" 使用工廠函式初始化程式例項"""
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app=app)
# db.init_app(app=app)
return app
/app/models.py
from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
nickname = db.Column(db.String(64), index = True, unique = True)
email = db.Column(db.String(120), index = True, unique = True)
def __repr__(self):
return '<User %r>' % (self.nickname)
3.完成之後,開始初始化
(web) E:\python\flaskblog>python manage.py db init
在虛擬環境(我的是(web))中進行初始化,根目錄下出現migrations資料夾,裡面有自動生成的一下檔案,指令碼等
4.更新models.py
from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
posts = db.relationship('Post', backref='author', lazy='dynamic')
def __repr__(self):
return '<User %r>' % (self.nickname)
class Post(db.Model):
id = db.Column(db.Integer, primary_key = True)
body = db.Column(db.String(140))
timestamp = db.Column(db.DateTime)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __repr__(self):
return '<Post %r>' % (self.body)
5.繼續執行遷移命令
python manage.py db migrate -m “first init db”
python manage.py db upgrade
連線mysql可以發現遷移成功了!
6.繼續學習
檔案結構
相關推薦
python的flask框架mysql資料庫遷移
最近在學習《flaskweb開發》,教程裡採用 sqlite 資料庫,我自己用的是mysql,在到資料庫遷移部分有點懵了,想跳過去,但是到後面發現很不方便,於是折騰了好長時間,網上也找不到現成的教程,於是想著自己搞一下試試,終於大功告成! 1.框架 flas
SSM框架+MySQL資料庫配置事務管理
資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 例如銀行轉賬,A賬戶轉100元給B賬戶,正常的流程是A賬戶減掉100元,B賬戶增加100元。如果轉賬失敗的話,不能出現A賬戶已經減掉100元而B賬戶沒有增加10
linux mysql資料庫遷移
由於資料的日漸增多,導致伺服器系統盤的容量總被佔滿,從而使mysql服務掛掉。 停止mysql服務 service mysqld stop 複製資料庫到新目錄 進入mysql 使用show variables like 'datadir' 檢視datadir
mysql資料庫遷移
伺服器資料庫遷移到新的資料庫中: 場景1、修改多個數據庫的字首以及表字首 1、建立資料庫 #根據規則建立新的資料庫 SELECT CONCAT( 'CREATE DATABA
python3使用Django框架+mysql資料庫
首先安裝虛擬環境,命令如下: sudo pip3 install virtualenv #安裝虛擬環境 接下來還要安裝虛擬環境擴充套件包,命令如下: sudo pip3 install virtualenvwrapper 安裝虛擬環境包裝器的目的是使用更加簡單的
windows上mysql資料庫遷移到linux
1 、安裝MySql Workbench8.0,在Navigator下MANAGEMENT下Data Export 2、雙擊Data Export,彈出如下介面: 1 表示選擇要匯出的資料庫 2 表示選擇匯出資料,或者匯出資料和表結
asp.net core 2.1 Mysql 資料庫遷移,遇坑記錄
首先來一段錯誤immodeMacBook-Pro:tz.efcontext immo$ dotnet ef database update Unable to create an object of type 'AppDbContext'. Add an implementa
MySQL資料庫遷移到SQL Server----------SSMA(SQL Server Migration Assistant for MySQL)工具安裝及使用
1.檢視SQLServer的版本: 開啟Microsoft SQL Server Management Studio,點選New Query,輸入“SELECT @@VERSION”,返回當前安裝的日期、版本和處理器型別。 2.檢視MySql版本 開始->
Ubuntu下MySQL資料庫遷移
確定MySQL資料庫檔案位置 MySQL 命令 show variables like '%dir%'; 注:用Ubuntu的apt包管理工具安裝的mysql資料庫,預設將資料庫檔案儲存在/var/lib/mysql目錄下 停止服務 sudo
Kettle7.0實現oracle到mysql資料庫遷移
一、Kettle簡介 Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,綠色無需安裝,資料抽取高效穩定。kettle的資料抽取主要在於抽取資料,而沒有考慮資料庫的函式、儲存過程、檢視、表結構以及索引、約束等
擴充套件:SpringBoot+MyBatis框架+mysql資料庫的整合(配置檔案版)
開發環境:開發工具:Intellij IDEA 2017.2.3JDK : 1.8.0_144spring boot 版本 : 1.5.10.RELEASEmaven : 3.2.3SpringBoot整合MyBatis加入基礎依賴:mybatis:<dependenc
MySQL資料庫遷移詳細步驟
========================================================================================== 一、背景簡介 ==================================
mysql資料庫遷移引起的問題------又是許可權惹的禍
最近,業務需要從一個mysql資料庫遷移到另外一個mysql資料庫, 舊mysql資料庫工作得很好, 但遷移到新的mysql資料庫後, 就出了問題。 僅僅是換了個mysql資
ABP (.Net Core 3.1版本) 使用MySQL資料庫遷移啟動模板專案(1)
> 最近要搭建新專案,因為還沒有用過.net core,所以想用.net core的環境搭建新專案,因為不熟悉.net core的架構,所以就下載了abp專案先了解一下。 因為自己太菜了,下載了模板專案,在啟動的過程中一波三折,其曲折真是無法用言語形容。(但是我沒有灰心!沒有什麼技術是在努力的情況下學
三十五、python學習之Flask框架(七)資料庫:Flask對資料庫的基本操作、常見關係模板、資料庫遷移、綜合案例:圖書管理
補充: 使用SQL_Alchemy定義一個模型類,不可以不指定primary_key=True建立表. 一、資料庫基本操作 1. 資料庫的基本操作(CRUD): 在Flask-SQLAlchemy中,插入、修改、刪除操作,均由資料庫會話管理。
三十四、python學之Flask框架(六)資料庫:mysql資料庫及Flask-SQLAlchemy
一、資料庫知識回顧: 1.SQL:關係型資料庫,支援結構化查詢語言: 關係型資料庫:以表的形式儲存; 支援結構化查詢語言:SQL語句; 列數固定;行數可變,定義資料,主鍵、外來鍵,引用同表或不同表的主鍵,這種聯絡稱為關係. 2.關於正規化: 第一
Ubuntu 下mysql資料庫存放位置遷移
問題 在使用mysql查詢建表的時候,突然除了這個錯誤 Error writing file '/tmp/MY0BkiqD' (Errcode: 28) 原因 後來才發現是我們伺服器的系統盤滿了,沒辦法儲存快取!!! 我們自己的伺服器有一塊SSD系統盤和另外一塊硬碟,安
EFCore 【Sqlite、Mysql】資料庫遷移 並使用資料庫,CodeFirst、DBFirst
通過alt+v+e+o組合鍵來喚醒程式包管理器 通過在程式包管理器控制檯中輸入指令: get-help about_entityframeworkcore 檢視EFCore的幫助文件。 EFCore CodeFirst EFCore 使用Sqlite資料庫遷移的步驟: 第一步
Django框架中的mysql資料庫
1、連結資料庫 mysql,sqlserver,oracle... django預設只能連結關係型資料庫 1、安裝依賴的庫 可以使用的庫:1、pymysql 2、python_mysql(不穩定) 3、mysqlclient(配置
SpringBoot框架與MyBatis整合,連線Mysql資料庫
SpringBoot是一種用來簡化新Spring應用初始搭建及開發過程的框架,它使用特定方式來進行配置,使得開發人員不再需要定義樣板化的配置。MyBatis是一個支援普通SQL查詢、儲存和高階對映的持久層框架,它消除了幾乎所有的JDBC程式碼和引數的手工配置以及對結果集的檢索封裝,可以使用簡單的XML或註