Add PostgresSubprocessException and refactor database initialization logic
- Introduced PostgresSubprocessException to handle errors during PostgreSQL subprocess execution. - Refactored PostgresDatabaseProvider to improve schema initialization script discovery. - Enhanced error handling for psql command execution, including logging of output and errors. - Implemented methods to find the schema initialization script and the psql executable path.
This commit is contained in:
@@ -100,6 +100,12 @@
|
||||
<ProjectReference Include="..\src\Jellyfin.Database\Jellyfin.Database.Providers.Postgres\Jellyfin.Database.Providers.Postgres.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="..\sql\**\*.sql">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="wwwroot\api-docs\redoc\custom.css">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
@@ -117,31 +123,17 @@
|
||||
|
||||
<ItemGroup>
|
||||
<!-- SQL initialization scripts for PostgreSQL -->
|
||||
<None Include="sql\**\*.sql">
|
||||
<None Include="..\scripts\sql\**\*.sql">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<Pack>false</Pack>
|
||||
<Link>sql\%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||
</None>
|
||||
<!-- Utility scripts -->
|
||||
<None Include="scripts\**\*">
|
||||
<!-- Utility scripts (excluding SQL files) -->
|
||||
<None Include="..\scripts\**\*" Exclude="..\scripts\sql\**\*.sql">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<Pack>false</Pack>
|
||||
<Link>scripts\%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Post-build event to ensure SQL and scripts files are copied -->
|
||||
<Target Name="CopySQLFiles" AfterTargets="AfterBuild">
|
||||
<ItemGroup>
|
||||
<SQLFiles Include="$(MSBuildProjectDirectory)\sql\**\*.sql" />
|
||||
<ScriptFiles Include="$(MSBuildProjectDirectory)\scripts\**\*" Exclude="$(MSBuildProjectDirectory)\scripts\**\*.git*" />
|
||||
</ItemGroup>
|
||||
<Message Importance="high" Text="Copying SQL files to $(OutDir)sql\" />
|
||||
<Copy SourceFiles="@(SQLFiles)" DestinationFiles="@(SQLFiles->'$(OutDir)sql\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
||||
<Message Importance="high" Text="✅ SQL files copied to output directory: $(OutDir)sql\" />
|
||||
<Message Importance="high" Text="Copying script files to $(OutDir)scripts\" />
|
||||
<Copy SourceFiles="@(ScriptFiles)" DestinationFiles="@(ScriptFiles->'$(OutDir)scripts\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
||||
<Message Importance="high" Text="✅ Script files copied to output directory: $(OutDir)scripts\" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user