about 2 years ago

註:本文持續更新直到porting完成。明確的說是套件pytest內所有測試均通過。

簡略的緣起

開源社的Slack + 期初專案發想 → Slack Backup Project
為了找一個Python可以用的native, file-based NoSQL database(哇這限制也太嚴格),找到了 CodernityDB,可惜是給Python 2用的。GitHub已經有2to3轉好的repo,可是這作者好像轉完就不管了,實測是不能用的。於是就開始了這趟 porting 的奇妙之旅。

怎麼開始

  1. git clone,看是要用 我的repo (https://github.com/andy0130tw/CodernityDB3) 或是自己fork一個都可以。
  2. 使用虛擬環境(也可以不用),像是內建的 venvvirtualenv
  3. 裝套件:pip install pytest
  4. 配置RAM disk,非必要但強烈建議。因為測試資料庫需要大量讀寫,估一下數量級加上會一再執行這段測試直到過了為止,很傷磁碟啦。
    • 在Linux下:參考以下所附程式碼範例。
      mkdir /tmp/ramdisk
      chmod 777 /tmp/ramdisk
      mount -t tmpfs -o size=128M tmpfs /tmp/ramdisk/ # 掛載,128M 可以修改成自己需要的大小 (似乎要非常非常大,已知256M不夠用,更大就沒試了)
      
    • 在Windows下可以用 SoftPerfect 的 RAM disk (實際用過,效果不錯)。
  5. 跑測試: python -m pytest tests --basetemp="/tmp/ramdisk/" -x -v
    • "tests":要跑測試的目錄,不可以指定成 pytest.ini,會沒測試可跑(不知道為何)
    • basetemp:跑測試用的目錄,就設成RAM disk掛載的目錄,沒有設定就不用指定
    • -x:第一次失敗就會停下來
    • -v:顯示詳細一點的訊息
  6. 修補到過為止orz

轉換的時候踩到哪些雷

TODO...

Reference

在 Linux 上使用 RAM Disk 提高資料讀寫速度

← Windows下怎麼裝PyQt5? 在 BBSFox 中使用思源黑體 →
 
comments powered by Disqus