2

我正在尝试在远程系统中创建数据库。相关代码如下

log = core.getLogger()

engine = create_engine('sqlite:////name:pass@192.168.129.139/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)是否有任何机制可以通过创建本地缓存副本来改善将条目插入数据库和查询和条目的延迟?

问候,卡蒂克。

4

3 回答 3

3

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

 engine = create_engine('sqlite:////tmp/nwtopology.db')
于 2013-05-08T04:04:42.320 回答
2

请参阅我的回答以及您的其他相关问题的详细说明。

这里还有一些分步指南如何安装和配置远程数据库。我会说先尝试 MySQL - 恕我直言,它比 PosgreSQL 更简单。

youtube上也有一些视频指南

于 2013-05-08T14:54:04.573 回答
0

根据this,您可以使用此表示法:

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

仍然不知道如何传递网络凭据,但至少您可以通过这种方式访问​​远程文件。它对我有用。

于 2014-06-24T15:38:31.933 回答