Okay, flask-migrate will die Tabellen immer noch nicht übernehmen. (Könnte irgendwie mit den MetaKlasseninfos zu tun haben, meinte jedenfalls jemand auf sqlalchemy).
Meine manage.py:
Code: Alles auswählen
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand
import J.models
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql:///mydatabase'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
manager.run()
Bash:
Code: Alles auswählen
>>> dir(manage)
['Flask', 'J', 'Manager', 'Migrate', 'MigrateCommand', 'SQLAlchemy', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'app', 'db', 'manager', 'migrate']
>>> dir(manage.J)
['Admin', 'Country', 'Flask', 'Floor', 'J', 'ModelView', 'PropertyListingType', 'PublicationPeriod', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'admin', 'app', 'configuration', 'db', 'forms', 'models', 'views']
>>> dir(manage.J.models)
['Country', 'Distance', 'Floor', 'Image', 'PropertyListing', 'PropertyListingSubtype', 'PropertyListingType', 'PublicationPeriod', 'RentUnit', 'SaleOrLease', 'SaleUnit', 'Salutation']
Der Vollständigkeit halber noch __init__.py (die aber eigentlich keine Rolle spielen sollte):
Code: Alles auswählen
from flask import Flask
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
app = Flask(__name__)
import J.views
from J.models import Country, PropertyListingType, Floor, PublicationPeriod
from J.db import db
app.config.from_object('J.configuration')
db.init_app(app)
# Creating Administrator interface ::
admin = Admin(app, template_mode='bootstrap3')
# Administrative views ::
admin.add_view(ModelView(Country, db.session))
admin.add_view(ModelView(PropertyListingType, db.session))
admin.add_view(ModelView(Floor, db.session))
admin.add_view(ModelView(PublicationPeriod, db.session))
if __name__ == '__main__':
app.run()
Tree:
Code: Alles auswählen
.
├── J
│ ├── configuration.py
│ ├── db.py
│ ├── forms.py
│ ├── __init__.py
│ ├── models.py
│ ├── static
│ │ ├── css
│ │ ├── font
│ │ └── js
│ ├── templates
│ │ ├── advertise.html
│ └── views.py
├── manage.py
├── migrations
│ ├── alembic.ini
│ ├── env.py
│ ├── README
│ ├── script.py.mako
│ └── versions
├── __pycache__
│ └── manage.cpython-34.pyc
├── requirements.txt
├── runserver.py
└── venv