Я пытаюсь добавить таблицу в уже существующую базу данных в SQLAlchemy. Мой app.db уже скомпилирован и заполнен данными. Я просто пытаюсь добавить новую таблицу в базу данных под названием song_points. (База данных отслеживает песни с течением времени)
Мои модели:SQLAlchemy Добавить таблицу в уже существующую базу данных
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)
И вот мой сценарий создания БД:
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)
Вы создали и запустить миграцию, так как при добавлении модели? – dirn
http://alembic.zzzcomputing.com/ru/latest/ – davidism