SQLAlchemy将表添加到现有数据库 [英] SQLAlchemy Add A Table To An Already Existing Database
本文介绍了SQLAlchemy将表添加到现有数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将表添加到SQLAlchemy中已经存在的数据库中.我的app.db已经被编译并填充了数据.我只是想向数据库中添加一个名为song_points的新表. (数据库随时间跟踪歌曲)
我的模特:
I'm attempting to add a table to an already existing Database in SQLAlchemy. My app.db is already compiled and populated with data. I'm just trying to add a new table to the database titled song_points. (The Database tracks songs over time)
My Models:
from app import db
class songs (db.Model):
SongID = db.Column(db.Integer,primary_key=True, autoincrement=False)
Artist = db.Column(db.String(120), primary_key=True)
Title = db.Column(db.String(120), primary_key = True)
def __repr__(self):
return "%s, %s, %d\n" %(self.Artist, self.Title, self.SongID)
class points(db.Model):
SongID = db.Column(db.Integer, db.ForeignKey("songs.SongID"), nullable= False, primary_key=True)
Genre = db.Column(db.String(25), primary_key=True)
Points = db.Column(db.Integer)
Date = db.Column(db.Date, primary_key=True)
Rank = db.Column(db.Integer)
def __repr__self(self):
return "%d, %s, %d\n" %(self.SongID, self.Genre, self.Points)
class artist_points(db.Model):
Artist = db.Column(db.String(120), primary_key=True)
Points = db.Column(db.Integer)
def __repr__self(self):
return "%s, %d\n" %(self.Artist, self.Points)
class graphs(db.Model):
SongID = db.Column(db.String(120), db.ForeignKey("songs.SongID"), nullable = False, primary_key = True)
URL = db.Column(db.String(120), primary_key=True)
def __repr__self(self):
return "%s, %s\n" %(self.SongID, self.URL)
这是我的数据库创建脚本:
And here was my db creation script:
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path
db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))
这是我要添加的表:
class song_points(db.Model):
SongID = db.Column(db.Integer,db.ForeignKey("songs.SongID"), nullable = False, primary_key = True)
Genre = db.Column(db.String(25), db.ForeignKey("points.Genre"), nullable = False, primary_key = True)
Points = db.Column(db.Integer)
推荐答案
song_points.__table__.create(db.session.bind)
这篇关于SQLAlchemy将表添加到现有数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文