記事一覧はこちら

sqliteのようで、sqliteでないデータベースが欲しい

nodejsでコードを書いていてデータベースが欲しくなるんだけど、わざわざサーバーを立てるという事をしたくないので必然的に選択肢がsqliteかrealmになる。

realmはwindowsでデータビューアーが無いので、数ヶ月後データベース構造を忘れた時に改修が出来なくなる可能性が非常に高くて使いたくない。

じゃあ素のsqlteで、機能的にはそれで必要十分なんだけどnodejsでのsqliteってどのモジュール使うのがいいんだ。

週1.7千DLの https://www.npmjs.com/package/sqlite

SQLite Client for Node.js Apps

NPM version NPM downloads Build Status Dependency Status Online Chat

A wrapper library that adds ES6 promises and SQL-based migrations API to sqlite3 (docs).

🔥 Want to strengthen your core JavaScript skills and master ES6? I would personally recommend this awesome ES6 course by Wes Bos.

週 68.0千DLの https://www.npmjs.com/package/sqlite3

Asynchronous, non-blocking SQLite3 bindings for Node.js.

人気があるのは後者のsqliteだけど、ものすごく使いにくい。全部promise投げて欲しいんだけど、コールバックを指定しないといけない処理がいくつかある。

機能的には前者のsqliteが良さそうなんだけど、DL数が少なすぎるとしれっと消えちゃいそうで使うの怖いんだよね。どのくらいを少なすぎると判断するのかにもよるけど、自分が普段使ってるモジュールの中で、週1.7kDLはダントツに少なかった。

もっと知名度があって多機能のsqliteモジュールを頑張って探すか、それともsqliteの代わりになるようなデータベースの仕組みを探すか。

別にsqliteに拘る必要は全然無くて、サーバーを立てるとかせずにsql書ければなんでもいいんだけどね。