SQLite数据库远程访问

时间:2017-09-05 19:04:24

标签: database sqlite web-services sqlalchemy rdbms

我的本​​地计算机上有一个SQLite数据库,我在同一台机器上运行的Web服务使用SQLAlchemy访问它,如下所示:

engine = create_engine('sqlite:///{}'.format('mydatabase.db'), echo=True)

我们计划在托管数据库的单独机器上托管我们的Web服务。我们怎样才能制作这个“mydabata.db'我的Web服务可以远程访问我们的Web服务吗?谢谢。

1 个答案:

答案 0 :(得分:1)

来自SQLite when to use docs:

  

客户端/服务器RDBMS可以更好地工作的情况

     
      
  • 客户端/服务器应用程序
  •   
     

如果有许多客户端程序通过网络将SQL发送到同一数据库,则使用客户端/服务器数据库引擎而不是SQLite。 SQLite将在网络文件系统上运行,但由于与大多数网络文件系统相关的延迟,性能不会很好。此外,文件锁定逻辑在许多网络文件系统实现中都是错误的(在Unix和Windows上)。如果文件锁定无法正常工作,则两个或多个客户端可能会尝试同时修改同一数据库的同一部分,从而导致损坏。因为这个问题是由底层文件系统实现中的错误引起的,所以SQLite无法阻止它。

     

一个好的经验法则是避免在直接访问相同数据库(没有中间应用程序服务器)和同时通过网络从许多计算机访问的情况下使用SQLite。

SQLite适用于嵌入式系统,或者至少在同一台计算机上使用它时。恕我直言,您必须迁移到其中一个较大的SQL解决方案,如PostgreSQLMariaDBMySQL。如果您通过ORM(SQLAlchemy)生成了所有查询,那么迁移到另一个RDBMS就没有问题。但即使编写SQL查询也不应该有太多问题,因为所有这些RDBMS都使用非常相似的方言(不像微软的T-SQL)。由于SQLite是 lite ,它只支持其他RDBMS支持的子集,所以不应该有问题。