diff --git a/src/rust/liblektor-rs/migrations/2022-09-30-204512_initial/up.sql b/src/rust/liblektor-rs/migrations/2022-09-30-204512_initial/up.sql
index 8b01a905d5d1e85524b1431e19e598db98e7a987..005e63bf6fd6e74ce7e536a66dd941e27cde0693 100644
--- a/src/rust/liblektor-rs/migrations/2022-09-30-204512_initial/up.sql
+++ b/src/rust/liblektor-rs/migrations/2022-09-30-204512_initial/up.sql
@@ -23,7 +23,7 @@ CREATE TABLE kara
   , song_type   TEXT    NOT NULL
   , song_origin TEXT    NOT NULL
   , source_name TEXT    NOT NULL
-  , language    TEXT    NOT NULL REFERENCES ISO_639_1(code)
+  , language    TEXT    NOT NULL REFERENCES iso_639_1(code)
   , kara_hash   TEXT    NOT NULL -- TEXT ABOVE + HASH OF FILE IN FS
   );
 
@@ -58,7 +58,43 @@ CREATE TABLE history
 
 -- The list of ISO 639-1 languages with their associated codes.
 -- Should add an entry in the api to query available languages.
-CREATE TABLE ISO_639_1
-  ( code    TEXT NOT NULL PRIMARY KEY
-  , name_en TEXT NOT NULL UNIQUE
-  );
\ No newline at end of file
+CREATE TABLE iso_639_1
+  ( code     TEXT    NOT NULL PRIMARY KEY
+  , name_en  TEXT    NOT NULL UNIQUE
+  , is_iso   BOOLEAN NOT NULL DEFAULT false
+  , is_macro BOOLEAN NOT NULL DEFAULT false
+  );
+
+-- As defined in ISO 639-1:
+-- https://archive.wikiwix.com/cache/index2.php?url=http%3A%2F%2Fwww.sil.org%2Fiso639-3%2Fcodes.asp%3Forder%3D639_1%26letter%3D%2525#federation=archive.wikiwix.com&tab=url
+INSERT OR REPLACE INTO iso_639_1 (is_macro, is_iso, code, name_en) VALUES
+  ( true,  true, "ar", "Arabic"         ),
+  ( false, true, "br", "Breton"         ),
+  ( false, true, "ca", "Catalan"        ),
+  ( false, true, "de", "German"         ),
+  ( false, true, "el", "Greek"          ),
+  ( false, true, "en", "English"        ),
+  ( false, true, "eo", "Esperanto"      ),
+  ( false, true, "es", "Spanish"        ),
+  ( false, true, "eu", "Basque"         ),
+  ( true,  true, "fa", "Persian"        ),
+  ( false, true, "fr", "French"         ),
+  ( false, true, "he", "Hebrew"         ),
+  ( true,  true, "ie", "Interlingue"    ),
+  ( false, true, "it", "Italian"        ),
+  ( false, true, "ja", "Japanese"       ),
+  ( false, true, "ko", "Korean"         ),
+  ( false, true, "la", "Latin"          ),
+  ( false, true, "nl", "Dutch"          ),
+  ( false, true, "no", "Norwegian"      ),
+  ( false, true, "oc", "Occitan"        ),
+  ( false, true, "pl", "Polish"         ),
+  ( false, true, "pt", "Portuguese"     ),
+  ( false, true, "ru", "Russian"        ),
+  ( false, true, "sv", "Swedish"        ),
+  ( false, true, "vi", "Vietnamese"     ),
+  ( false, true, "zh", "Chinese"        ),
+  ( false, true, "zu", "Zulu"           ),
+  -- ...
+  ( true,  false, "fiction", "Fictional" ),
+  ( true,  false, "autre",   "Joker"     );
diff --git a/src/rust/liblektor-rs/src/database/schema.rs b/src/rust/liblektor-rs/src/database/schema.rs
index dc22363e565f1fd0ce40167ca87168b51bf9af85..78d438654b092080469df80b1d632119f5a9329b 100644
--- a/src/rust/liblektor-rs/src/database/schema.rs
+++ b/src/rust/liblektor-rs/src/database/schema.rs
@@ -1,16 +1,18 @@
 // @generated automatically by Diesel CLI.
 
 diesel::table! {
-    ISO_639_1 (code) {
-        code -> Text,
-        name_en -> Text,
+    history (epoch) {
+        id -> Integer,
+        epoch -> Integer,
     }
 }
 
 diesel::table! {
-    history (epoch) {
-        id -> Integer,
-        epoch -> Integer,
+    iso_639_1 (code) {
+        code -> Text,
+        name_en -> Text,
+        is_iso -> Bool,
+        is_macro -> Bool,
     }
 }
 
@@ -65,7 +67,7 @@ diesel::table! {
 }
 
 diesel::joinable!(history -> kara (id));
-diesel::joinable!(kara -> ISO_639_1 (language));
+diesel::joinable!(kara -> iso_639_1 (language));
 diesel::joinable!(kara_makers -> kara (id));
 diesel::joinable!(kara_tags -> kara (kara_id));
 diesel::joinable!(kara_tags -> tag (tag_id));
@@ -73,8 +75,8 @@ diesel::joinable!(repo_kara -> kara (local_kara_id));
 diesel::joinable!(repo_kara -> repo (repo_id));
 
 diesel::allow_tables_to_appear_in_same_query!(
-    ISO_639_1,
     history,
+    iso_639_1,
     kara,
     kara_makers,
     kara_tags,