2016-03-07 42 views
1

我在我的远程Ubuntu服务器上开发flask项目。我也使用SQLAlchemy。但是,当我尝试运行此脚本时,出现sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file错误。SQLAlchemy sqlite3.operational错误

这是我models.py

import sys 
from sqlalchemy import Column, Integer, String 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy import create_engine 

Base = declarative_base() 

class Puppy(Base): 
    __tablename__ = 'puppy' 


    name =Column(String(80), nullable = False) 
    id = Column(Integer, primary_key = True) 
    description = Column(String(250)) 

    @property 
    def serialize(self): 
     """Return object data in easily serializeable format""" 
     return { 
      'id': self.id, 
      'name': self.name, 
      'description' : self.description 
     } 

engine = create_engine('sqlite:///puppies.db') 
Base.metadata.create_all(engine) 

我跟着Udacity fullstack网络基础教程,它的工作我的本地机器上。但是,我无法在服务器上处理它

+0

我遇到同样的问题。你有没有解决它? – Layne

+0

@Layne Nope。找不到解决方案 – Alparslan

回答

0

路径可能无法正确解析。尝试:

import os 
import sys 
from sqlalchemy import Column, Integer, String 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy import create_engine 

BASE_DIR = os.path.abspath(os.path.dirname(__file__)) 
DATABASE_PATH = os.path.join(BASE_DIR, 'puppies.db') 

Base = declarative_base() 

class Puppy(Base): 
    __tablename__ = 'puppy' 


    name =Column(String(80), nullable = False) 
    id = Column(Integer, primary_key = True) 
    description = Column(String(250)) 

    @property 
    def serialize(self): 
     """Return object data in easily serializeable format""" 
     return { 
      'id': self.id, 
      'name': self.name, 
      'description' : self.description 
     } 

engine = create_engine('sqlite:///' + DATABASE_PATH) 
Base.metadata.create_all(engine)