Flask, postgresql 및 전단을 사용하여 작은 webapp를 작성하기로 결정했습니다. postgresql에 PostGIS 익스텐더를 사용하여 좌표 (위도와 경도)를 저장하고 싶습니다. 플라스크 응용 프로그램은 Flask-SQLAlchemy, 청사진, 특히 데이터베이스 마이그레이션 프로세스를위한 Flask-Migrate를 사용합니다. 여기 GeoAlchemy2에 대한 Alembic 마이그레이션 NameError : 'geoalchemy2'의 이름이 정의되지 않았습니다.
내 데이터베이스 모델의 발췌 한 것입니다 : 여기from . import db
from geoalchemy2 import Geometry
class Station(db.Model):
__tablename__ = 'stations'
id = db.Column(db.Integer, primary_key=True, unique=True)
name = db.Column(db.String(255))
position = db.Column(Geometry('Point', srid=4326))
내 응용 프로그램의 발췌/초기화 평
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import config
db = SQLAlchemy()
migrate = Migrate()
def create_app(config_name=None, main=True):
if config_name is None:
config_name = os.environ.get('FLASK_CONFIG', 'development')
app = Flask(__name__)
app.config.from_object(config[config_name])
db.init_app(app)
migrate.init_app(app, db)
from .home import home as home_blueprint
app.register_blueprint(home_blueprint)
from .admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint, url_prefix='/admin')
return app
특정 확장자를 사용하기 전에, 나는 'didn를 내 모델에 적응하는 데 문제가 없습니다. 그 이후로 마이그레이션이 제대로되었지만 업그레이드가 작동하지 않습니다 (python manage.py db upgrade). 여기
나는 웹 서버에서 얻을 로그 :
sa.Column('position', geoalchemy2.types.Geometry(geometry_type='POINT', srid=4326), nullable=True),
`enter code here`NameError: name 'geoalchemy2' is not defined
내가 조금 잃고 나는이 특정 주제에 많은 도움을 찾을 수 없습니다입니다. 어떤 문제가 발생했는지에 대한 아이디어가 있습니까?