我正在尝试在远程系统中创建数据库。相关代码如下所示
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)是否有任何机制可以通过创建本地缓存副本来改善将条目插入数据库以及查询和输入的延迟?
此致 KARTHIK。
答案 0 :(得分:3)
sqlite不能通过网络使用,使用登录凭据,就像连接MySQL或PostgreSQL一样;要传递给create_engine
的正确连接字符串只是
engine = create_engine('sqlite:////tmp/nwtopology.db')
答案 1 :(得分:2)
请参阅my answer with details explanations至your other related question。
此处还有一些分步指南如何安装和配置远程数据库。 我会说首先尝试MySQL - 恕我直言,PosgreSQL更简单。
还提供了一些视频指南答案 2 :(得分:0)
根据this,您可以使用此表示法:
engine = create_engine('sqlite:///\\\\192.168.129.139\\tmp\\nwtopology.db',echo=False)
仍然不知道如何传递网络凭据,但至少你可以通过这种方式访问远程文件。它对我有用。