Add default_search to user_settings
Some checks are pending
Build docker image / Build-Docker-Image (push) Waiting to run
rust-clippy analyze / Run rust-clippy analyzing (push) Waiting to run

Add migration to add a nullable VARCHAR(32) column with a CHECK
constraint restricting values to book, author, series, translator.
Update SQLx query artifacts, handlers, and serializers to read and
write the new field.
This commit is contained in:
2026-02-16 21:09:56 +01:00
parent 54d47b2d63
commit 963f9ae6cb
8 changed files with 63 additions and 23 deletions

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type) FILTER (WHERE languages.id IS NOT NULL),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.user_id = $1\n GROUP BY user_settings.id\n ",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n user_settings.default_search,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type) FILTER (WHERE languages.id IS NOT NULL),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.user_id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
@@ -35,6 +35,11 @@
},
{
"ordinal": 6,
"name": "default_search",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
@@ -78,8 +83,9 @@
false,
false,
false,
true,
null
]
},
"hash": "f1ec22528fd84d652379dfe739d9ef7a7b5cad5609c5734c845bf0b6da0a5150"
"hash": "512725635fb38c268949661cf2bdc021837cd8b6fb5841c9644f268b89963b98"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO user_settings (user_id, last_name, first_name, username, source)\n VALUES ($1, $2, $3, $4, $5)\n ON CONFLICT (user_id) DO UPDATE\n SET last_name = $2, first_name = $3, username = $4, source = $5\n RETURNING id, user_id, last_name, first_name, username, source\n ",
"query": "\n INSERT INTO user_settings (user_id, last_name, first_name, username, source, default_search)\n VALUES ($1, $2, $3, $4, $5, $6)\n ON CONFLICT (user_id) DO UPDATE\n SET last_name = $2, first_name = $3, username = $4, source = $5, default_search = $6\n RETURNING id, user_id, last_name, first_name, username, source, default_search\n ",
"describe": {
"columns": [
{
@@ -32,6 +32,11 @@
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "default_search",
"type_info": "Varchar"
}
],
"parameters": {
@@ -40,6 +45,7 @@
"Varchar",
"Varchar",
"Varchar",
"Varchar",
"Varchar"
]
},
@@ -49,8 +55,9 @@
false,
false,
false,
false
false,
true
]
},
"hash": "51d29079e7c27eb0a59d309255e37fd595887cc3faf60a93533e9eadadcab1da"
"hash": "9ce4bb739dd3e8e8b0b8be165c13524eee4e07fae9a979022319ba106f17effd"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.id = $1\n GROUP BY user_settings.id\n ",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n user_settings.default_search,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n WHERE user_settings.id = $1\n GROUP BY user_settings.id\n ",
"describe": {
"columns": [
{
@@ -35,6 +35,11 @@
},
{
"ordinal": 6,
"name": "default_search",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
@@ -78,8 +83,9 @@
false,
false,
false,
true,
null
]
},
"hash": "160ba7ba8bd514083af2a982dca1a0f1bc85e5b73d81a12b67d6c2b0d90e5740"
"hash": "b1f635ae66d1905c3b2b6dbb4fd9247cad8b941d5fe9090e27427915d172b4a6"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n GROUP BY user_settings.id\n ORDER BY user_settings.id ASC\n OFFSET $1\n LIMIT $2\n ",
"query": "\n SELECT\n user_settings.id,\n user_settings.user_id,\n user_settings.last_name,\n user_settings.first_name,\n user_settings.username,\n user_settings.source,\n user_settings.default_search,\n COALESCE(\n ARRAY_AGG(ROW(\n languages.id,\n languages.label,\n languages.code\n )::user_language_type),\n ARRAY[]::user_language_type[]\n ) AS \"allowed_langs!: Vec<UserLanguage>\"\n FROM user_settings\n LEFT JOIN users_languages ON user_settings.id = users_languages.user\n LEFT JOIN languages ON users_languages.language = languages.id\n GROUP BY user_settings.id\n ORDER BY user_settings.id ASC\n OFFSET $1\n LIMIT $2\n ",
"describe": {
"columns": [
{
@@ -35,6 +35,11 @@
},
{
"ordinal": 6,
"name": "default_search",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "allowed_langs!: Vec<UserLanguage>",
"type_info": {
"Custom": {
@@ -79,8 +84,9 @@
false,
false,
false,
true,
null
]
},
"hash": "30aefca980d6708fa760e7cb4196224c1c597c70e57ec71e6deb4556385d355d"
"hash": "cca138dcdd45bec0bfe0341c851bcebf1f09256351ce80e4201ca0012427664d"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT id, user_id, last_name, first_name, username, source\n FROM user_settings\n WHERE user_id = $1\n ",
"query": "\n SELECT id, user_id, last_name, first_name, username, source, default_search\n FROM user_settings\n WHERE user_id = $1\n ",
"describe": {
"columns": [
{
@@ -32,6 +32,11 @@
"ordinal": 5,
"name": "source",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "default_search",
"type_info": "Varchar"
}
],
"parameters": {
@@ -45,8 +50,9 @@
false,
false,
false,
false
false,
true
]
},
"hash": "468d4e044e88a95969f77dc74c6e1c17907571e5119bf240e4facefef508b510"
"hash": "f208a1162fac1ff6ad8041c4408054d176bf9c967e6dd1a6e659c36a6cdb31f3"
}