[backend/database] Create Pronouns column in UserProfile
This commit is contained in:
parent
f270b90fe9
commit
6001ff960a
3 changed files with 97 additions and 0 deletions
|
@ -33,6 +33,7 @@ namespace Iceshrimp.Backend.Core.Database.Migrations
|
|||
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "push_subscription_policy_enum", new[] { "all", "followed", "follower", "none" });
|
||||
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "relay_status_enum", new[] { "requesting", "accepted", "rejected" });
|
||||
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "user_profile_ffvisibility_enum", new[] { "public", "followers", "private" });
|
||||
NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "hstore");
|
||||
NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "pg_trgm");
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
|
@ -4656,6 +4657,11 @@ namespace Iceshrimp.Backend.Core.Database.Migrations
|
|||
.HasColumnType("character varying(32)")
|
||||
.HasColumnName("pinnedPageId");
|
||||
|
||||
b.Property<Dictionary<string, string>>("Pronouns")
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("hstore")
|
||||
.HasColumnName("pronouns");
|
||||
|
||||
b.Property<string>("Url")
|
||||
.HasMaxLength(512)
|
||||
.HasColumnType("character varying(512)")
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
using System.Collections.Generic;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Iceshrimp.Backend.Core.Database.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
[DbContext(typeof(DatabaseContext))]
|
||||
[Migration("20250126040003_Pronouns")]
|
||||
public partial class Pronouns : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AlterDatabase()
|
||||
.Annotation("Npgsql:Enum:antenna_src_enum", "home,all,users,list,group,instances")
|
||||
.Annotation("Npgsql:Enum:filter_action_enum", "warn,hide")
|
||||
.Annotation("Npgsql:Enum:filter_context_enum", "home,lists,threads,notifications,accounts,public")
|
||||
.Annotation("Npgsql:Enum:job_status", "queued,delayed,running,completed,failed")
|
||||
.Annotation("Npgsql:Enum:marker_type_enum", "home,notifications")
|
||||
.Annotation("Npgsql:Enum:note_visibility_enum", "public,home,followers,specified")
|
||||
.Annotation("Npgsql:Enum:notification_type_enum", "follow,mention,reply,renote,quote,like,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app,edit,bite")
|
||||
.Annotation("Npgsql:Enum:page_visibility_enum", "public,followers,specified")
|
||||
.Annotation("Npgsql:Enum:push_subscription_policy_enum", "all,followed,follower,none")
|
||||
.Annotation("Npgsql:Enum:relay_status_enum", "requesting,accepted,rejected")
|
||||
.Annotation("Npgsql:Enum:user_profile_ffvisibility_enum", "public,followers,private")
|
||||
.Annotation("Npgsql:PostgresExtension:hstore", ",,")
|
||||
.Annotation("Npgsql:PostgresExtension:pg_trgm", ",,")
|
||||
.OldAnnotation("Npgsql:Enum:antenna_src_enum", "home,all,users,list,group,instances")
|
||||
.OldAnnotation("Npgsql:Enum:filter_action_enum", "warn,hide")
|
||||
.OldAnnotation("Npgsql:Enum:filter_context_enum", "home,lists,threads,notifications,accounts,public")
|
||||
.OldAnnotation("Npgsql:Enum:job_status", "queued,delayed,running,completed,failed")
|
||||
.OldAnnotation("Npgsql:Enum:marker_type_enum", "home,notifications")
|
||||
.OldAnnotation("Npgsql:Enum:note_visibility_enum", "public,home,followers,specified")
|
||||
.OldAnnotation("Npgsql:Enum:notification_type_enum", "follow,mention,reply,renote,quote,like,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app,edit,bite")
|
||||
.OldAnnotation("Npgsql:Enum:page_visibility_enum", "public,followers,specified")
|
||||
.OldAnnotation("Npgsql:Enum:push_subscription_policy_enum", "all,followed,follower,none")
|
||||
.OldAnnotation("Npgsql:Enum:relay_status_enum", "requesting,accepted,rejected")
|
||||
.OldAnnotation("Npgsql:Enum:user_profile_ffvisibility_enum", "public,followers,private")
|
||||
.OldAnnotation("Npgsql:PostgresExtension:pg_trgm", ",,");
|
||||
|
||||
migrationBuilder.AddColumn<Dictionary<string, string>>(
|
||||
name: "pronouns",
|
||||
table: "user_profile",
|
||||
type: "hstore",
|
||||
maxLength: 128,
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "pronouns",
|
||||
table: "user_profile");
|
||||
|
||||
migrationBuilder.AlterDatabase()
|
||||
.Annotation("Npgsql:Enum:antenna_src_enum", "home,all,users,list,group,instances")
|
||||
.Annotation("Npgsql:Enum:filter_action_enum", "warn,hide")
|
||||
.Annotation("Npgsql:Enum:filter_context_enum", "home,lists,threads,notifications,accounts,public")
|
||||
.Annotation("Npgsql:Enum:job_status", "queued,delayed,running,completed,failed")
|
||||
.Annotation("Npgsql:Enum:marker_type_enum", "home,notifications")
|
||||
.Annotation("Npgsql:Enum:note_visibility_enum", "public,home,followers,specified")
|
||||
.Annotation("Npgsql:Enum:notification_type_enum", "follow,mention,reply,renote,quote,like,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app,edit,bite")
|
||||
.Annotation("Npgsql:Enum:page_visibility_enum", "public,followers,specified")
|
||||
.Annotation("Npgsql:Enum:push_subscription_policy_enum", "all,followed,follower,none")
|
||||
.Annotation("Npgsql:Enum:relay_status_enum", "requesting,accepted,rejected")
|
||||
.Annotation("Npgsql:Enum:user_profile_ffvisibility_enum", "public,followers,private")
|
||||
.Annotation("Npgsql:PostgresExtension:pg_trgm", ",,")
|
||||
.OldAnnotation("Npgsql:Enum:antenna_src_enum", "home,all,users,list,group,instances")
|
||||
.OldAnnotation("Npgsql:Enum:filter_action_enum", "warn,hide")
|
||||
.OldAnnotation("Npgsql:Enum:filter_context_enum", "home,lists,threads,notifications,accounts,public")
|
||||
.OldAnnotation("Npgsql:Enum:job_status", "queued,delayed,running,completed,failed")
|
||||
.OldAnnotation("Npgsql:Enum:marker_type_enum", "home,notifications")
|
||||
.OldAnnotation("Npgsql:Enum:note_visibility_enum", "public,home,followers,specified")
|
||||
.OldAnnotation("Npgsql:Enum:notification_type_enum", "follow,mention,reply,renote,quote,like,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app,edit,bite")
|
||||
.OldAnnotation("Npgsql:Enum:page_visibility_enum", "public,followers,specified")
|
||||
.OldAnnotation("Npgsql:Enum:push_subscription_policy_enum", "all,followed,follower,none")
|
||||
.OldAnnotation("Npgsql:Enum:relay_status_enum", "requesting,accepted,rejected")
|
||||
.OldAnnotation("Npgsql:Enum:user_profile_ffvisibility_enum", "public,followers,private")
|
||||
.OldAnnotation("Npgsql:PostgresExtension:hstore", ",,")
|
||||
.OldAnnotation("Npgsql:PostgresExtension:pg_trgm", ",,");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -71,6 +71,10 @@ public class UserProfile
|
|||
[Column("mentions", TypeName = "jsonb")]
|
||||
public List<Note.MentionedUser> Mentions { get; set; } = null!;
|
||||
|
||||
[Column("pronouns")]
|
||||
[StringLength(128)]
|
||||
public Dictionary<string, string>? Pronouns { get; set; }
|
||||
|
||||
[ForeignKey(nameof(PinnedPageId))]
|
||||
[InverseProperty(nameof(Page.UserProfile))]
|
||||
public virtual Page? PinnedPage { get; set; }
|
||||
|
|
Loading…
Add table
Reference in a new issue