stephencelis / SQLite.swift

A type-safe, Swift-language layer over SQLite3.
MIT License
9.64k stars 1.56k forks source link

Add methods to perform migration to new major SQLCipher after setting a key #972

Closed SVKorosteleva closed 3 years ago

SVKorosteleva commented 4 years ago

This change adds keyAndMigrate methods which perform "PRAGMA cipher_migrate;" call immediately after calling sqlite3_key_v2 This call is needed to open the database files created in older major SQLCipher version (e.g. 3.x.x) by newer SQLCipher version (e.g. 4.x.x). (see https://github.com/stephencelis/SQLite.swift/issues/908) These calls should be performed only once, when opening older database files for the first time. See https://www.zetetic.net/sqlcipher/sqlcipher-api/#cipher_migrate and https://discuss.zetetic.net/t/upgrading-to-sqlcipher-4/3283 for more details regarding SQLCipher upgrade