2013-05-08 65 views
2

我试图创建一个远程系统。相关代码数据库如下SQLAlchemy的OperationalError:(OperationalError)无法打开数据库文件无无

log = core.getLogger() 

engine = create_engine('sqlite:////name:[email protected]/tmp/nwtopology.db',echo=False) 
Base = declarative_base() 
Session = sessionmaker(bind=engine) 
session = Session() 

class SourcetoPort(Base): 
    """""" 
    __tablename__ = 'source_to_port' 
    id = Column(Integer, primary_key=True) 
    port_no  = Column(Integer) 
    src_address = Column(String,index=True) 

    #----------------------------------------- 
    def __init__(self, src_address,port_no): 
     """""" 
     self.src_address = src_address 
     self.port_no  = port_no 

显然我试图在创建数据库给出一个远程系统。我得到的错误:

OperationalError: (OperationalError) unable to open database file None None 

我的问题如下。

1)在本地机器上运行程序的用户与尝试在远程机器上创建数据库的用户不同。这是一个问题吗?

2)是否有任何机制可以通过创建本地缓存副本来改善将条目插入数据库和查询和输入的延迟?

Regards, Karthik。

回答

3

sqlite不能在网络上使用,使用登录凭证,就像连接到MySQL或PostgreSQL一样;正确的连接字符串传递给create_engine只是

engine = create_engine('sqlite:////tmp/nwtopology.db') 
+0

我应该怎么做才能通过网络创建一个具有登录凭据的数据库? – liv2hak 2013-05-08 04:20:12

0

this,你可以使用这个符号提供一些视频指南:

engine = create_engine('sqlite:///\\\\192.168.129.139\\tmp\\nwtopology.db',echo=False) 

还是做不知道如何传递网络凭证,但至少可以通过这种方式访问​​远程文件。它为我工作。

+1

通过网络共享使用SQLite非常令人沮丧,请参阅“何时其他RDBMS可能更好地工作”:https://sqlite.org/whentouse.html – 2014-06-30 23:57:33

相关问题