Load Sqlite unicode extension

This commit is contained in:
Claudio Ortolina
2024-12-07 18:32:22 +01:00
parent 83007a3de1
commit 0f926ed86a
5 changed files with 37 additions and 0 deletions
+34
View File
@@ -2,4 +2,38 @@ defmodule MusicLibrary.Repo do
use Ecto.Repo,
otp_app: :music_library,
adapter: Ecto.Adapters.SQLite3
def init(_context, config) do
{:ok,
Keyword.put(config, :load_extensions, [
extension_path("unicode")
])}
end
def extension_path(name) do
[arch | _rest] = :erlang.system_info(:system_architecture)
|> List.to_string()
|> String.split("-")
{_, os} = :os.type()
platform = case {os, arch} do
{:darwin, "x86_64"} -> "darwin-amd64"
{:darwin, "aarch64"} -> "darwin-aarch64"
{:linux, "x86_64"} -> "linux-amd64"
_other -> raise "Unsupported OS or platform"
end
extension = case os do
:darwin -> "dylib"
:linux -> "so"
end
Path.join([
:code.priv_dir(:music_library),
"sqlite_extensions",
platform,
"#{name}.#{extension}"
])
end
end
+3
View File
@@ -0,0 +1,3 @@
# SQLite extensions
Lifted from <https://github.com/mindreframer/ex_sqlean>, original files under MIT license.
Binary file not shown.
Binary file not shown.
Binary file not shown.