SQLAlchemy将表添加到现有数据库 [英] SQLAlchemy Add A Table To An Already Existing Database

查看:269
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆