2017-09-05 15 views
0

私は私のローカルマシン上のSQLiteデータベースを持っていると私のWebサービスは、それはこのようSQLAlchemyのを使用して、同じマシンアクセス上で実行されている:SQLiteのデータベースのリモートアクセス

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

私たちは別々の上、弊社のWebサービスをホストすることを計画していますデータベースがホストされている場所のマシン。この 'my​​dabata.db'に私のWebサービスのリモートからアクセスできるようにするにはどうすればよいですか?ありがとう。

答えて

1

SQLiteのwhen to useドキュメントから:クライアント/サーバーRDBMS月仕事より良い

  • クライアント/サーバーアプリケーション

状況送る多くのクライアントプログラムが存在する場合SQLをネットワーク上の同じデータベースに追加し、SQLiteの代わりにクライアント/サーバーデータベースエンジンを使用します。 SQLiteはネットワークファイルシステム上で動作しますが、ほとんどのネットワークファイルシステムに関連する遅延のため、パフォーマンスはそれほど高くありません。また、ファイルロックロジックは、多くのネットワークファイルシステム実装(UnixとWindowsの両方)でバグがあります。ファイルのロックが正しく機能しない場合、複数のクライアントが同時に同じデータベースの同じ部分を変更しようとすると、破損する可能性があります。この問題は、基礎となるファイルシステム実装のバグに起因するため、SQLiteがそれを防ぐために行うことはできません。

同じデータベースに直接(アプリケーションサーバーを介さずに)アクセスすると同時に、ネットワーク上の多くのコンピュータから同時にSQLiteを使用することを避けることをお勧めします。

SQLiteは、組み込みシステムで、または少なくとも同じコンピュータで使用するときにうまく動作します。 IMHO PostgreSQLMariaDBまたはMySQLのようなより大きなSQLソリューションの1つに移行する必要があります。 ORM(SQLAlchemy)を使用してすべてのクエリを生成した場合、別のRDBMSへの移行に問題はありません。しかし、たとえSQLクエリを書いても、これらのRDBMSすべてが(MicrosoftのT-SQLとは異なり)非常に似た方言を使用するため、問題はあまりないはずです。 SQLiteはliteなので、他のRDBMSがサポートしているものの一部しかサポートしていないので、問題はないはずです。

関連する問題