Load Sqlite unicode extension
This commit is contained in:
@@ -2,4 +2,38 @@ defmodule MusicLibrary.Repo do
|
|||||||
use Ecto.Repo,
|
use Ecto.Repo,
|
||||||
otp_app: :music_library,
|
otp_app: :music_library,
|
||||||
adapter: Ecto.Adapters.SQLite3
|
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
|
end
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# SQLite extensions
|
||||||
|
|
||||||
|
Lifted from <https://github.com/mindreframer/ex_sqlean>, original files under MIT license.
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user