所以我构建了一个postgres models.py并试图创建下面的测试数据,所有这些都与sqlite一起使用。
basedir = os.getcwd()
app = Flask(__name__)
#...omitted for brevity
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['ENV_DB_CONNECTION_DSN'] = 'postgres:///Ocean.db'
db = SQLAlchemy(app)
db.create_all()
#testing starts below this
camelot = Entity(level='Province', name='Camelot',iso_code='CAM')
db.session.add(camelot)
lit = Literal_data(ent_id=1, year=2012, value=2, display_name = 'swallow count', meta_id=1)
db.session.add(lit)
swallow = Meta_indicator_data(p_name = 'swallow count',family = 'animal life',num_type = 'interger',provider = 'camelot bird comission',p_description = 'swallows. duh.')
db.session.add(swallow)
db.session.commit()
以上工作正常,我甚至可以用db.engine.execute查询数据库('select * from ent')
唯一的问题是我无法在任何地方找到db文件,包括psgadmin III!
有关如何打印db文件名的任何想法?如果没有db文件,上面的运行可以没有错误吗?
答案 0 :(得分:1)
基本上我的配置只是糟透了我想,已经有一段时间了,因为我正在处理这个问题。当前代码读取
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
try:
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL']
except KeyError:
raise Exception('I dont see a database connection in the Database URL system variablbe - see the read me on setting this up')
其中:
database_url = postgresql://$user:$password@localhost:5432/$databasename