我有一个sqlalchemy应用程序,当前使用本地数据库。该应用程序的代码如下所示。
log = core.getLogger()
engine = create_engine('sqlite:///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
我想在远程计算机上创建数据库。我遇到了这个文档。 http://www.sqlalchemy.org/doc_pdfs/sqlalchemy_0_6_3.pdf
在解释中,他们提到了下面给出的界限。
engine = create_engine('postgresql:// scott:tiger @ localhost:5432 / mydatabase')
我的第一个问题是
1)sqlite是否支持远程数据库创建? 2)如何始终打开与远程机器的连接?每次我必须插入条目或进行查询时,我都不想启动ssh连接。
这些问题可能听起来很愚蠢,但我对python和sqlalchemy非常陌生。感谢任何帮助。
答案 0 :(得分:2)
回答你的问题:
听起来你的应用程序已经过度生长了SQLite。现在是时候切换到使用像MySQL或PosgreSQL这样的传统RDBMS,网络连接支持开箱即用。
SQLite是本地数据库。 SQLite何时使用它a page explaining。它说:
如果你有许多客户端程序访问一个共同的数据库 网络,您应该考虑使用客户端/服务器数据库引擎 而不是SQLite。
好处是您的应用程序可能与数据库无关,因为您正在使用SQLAlchemy生成查询。
所以我会做以下事情:
答案 1 :(得分:0)
时间改变了。
如果希望在Web上提供SQLite数据库,一种选择是使用CubeSQL作为服务器,并使用SQLiteManager for SQLite作为其客户端。有关详细信息,请参见https://www.sqlabs.com/
另一个选择可能是类似地使用Valentina Server:请参见https://www.valentina-db.com/en/valentina-server-overview
(这些选项可能仅在一次最多有一个具有写访问权限的客户端时才适用。)
还有其他人吗?