Ruby on Rails и зашифрованная база данных SQLite - PullRequest
0 голосов
/ 01 января 2019

Я использую Rails 5.2.2 и SQLCipher версии 3.2.0 (на основе SQLite 3.8.6).

Я зашифровал базу данных SQLite с помощью sqlcipher, но я не могу загрузить приложение rails.Сообщение get выглядит следующим образом:

SQLite3 :: NotADatabaseException: файл зашифрован или не является базой данных: ВЫБЕРИТЕ имя ОТ sqlite_master ГДЕ имя <> 'sqlite_sequence' И имя = 'schema_migrations' И типIN ('таблица')

Я думаю, что моя проблема заключается в обновлении файла config / database.yml и указании пароля.Я попытался указать такие параметры, как пароль, ключ и т. Д., Но безуспешно.

Мне было интересно, возможно ли вообще использовать зашифрованную базу данных SQLite в рельсах?

1 Ответ

0 голосов
/ 01 января 2019

Вопрос не в том, какую версию Ruby вы используете, а в том, существует ли адаптер для базы данных, которую вы хотели бы использовать.

Rails пытается общаться со всеми базами данных одинаковокаждая технология базы данных должна предоставлять adapter для преобразования того, что запрашивает Rails, в команды, необходимые для этой технологии базы данных для выполнения того, что запрашивает Rails.

Эта конфигурация выполняется в config / database.yml-файл, который может выглядеть примерно так (обратите внимание на раздел адаптера):

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

Существует много доступных адаптеров баз данных, включая SQLite, но я не видел ни одного для SQLCipher, возможно, вам повезет большепоиск, чем я.

Из того, что я видел, большинство приложений Rails не шифруют всю базу данных, но, тем не менее, шифруют определенные столбцы, например, хранят некоторую зашифрованную версию пароля или токена доступа.

...