获取 'relation "schemaversions" does not exist error'
Getting 'relation "schemaversions" does not exist error'
我正在尝试使用从 dbup 转换为 postgres 的示例代码。
下面是代码。
using System;
using System.Linq;
using System.Reflection;
using DbUp;
namespace GeoServerDbManager
{
//"Host = 1.1.1.1; User Id = postgres; Password = postgres; Database = osmdev; Port = 5432"
class Program
{
static int Main(string[] args)
{
var connectionString =
args.FirstOrDefault()
?? "Host = 1.1.1.1; User Id = postgres; Password = postgres; Database = osmdev; Port = 5432";
EnsureDatabase.For.PostgresqlDatabase(connectionString);
var upgrader =
DeployChanges.To
.PostgresqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.LogToConsole()
.Build();
var result = upgrader.PerformUpgrade();
if (!result.Successful)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(result.Error);
Console.ResetColor();
#if DEBUG
Console.ReadLine();
#endif
return -1;
}
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Success!");
Console.ResetColor();
return 0;
}
}
}
我运行这个时候数据库不存在。
我不断收到错误消息:
Script block number: 0; Message: 42P01: relation "schemaversions" does not exist
Npgsql.PostgresException (0x80004005): 42P01: relation "schemaversions" does not exist
确实创建了 table,模式版本 table 也创建了,但是脚本末尾的模式版本 table 是空的。
我知道这是一个老问题,但今天我 运行 遇到了同样的问题,因为还没有答案,所以我回答以供将来参考:
我发现 DbUp 正在尝试创建 "schemaversions" 但没有默认模式集。这导致错误:
Getting 'relation "schemaversions" does not exist error'
设置默认架构解决了我的问题:
builder.JournalToPostgresqlTable("SCHEMA_NAME", "schemaversions")
我正在尝试使用从 dbup 转换为 postgres 的示例代码。
下面是代码。
using System;
using System.Linq;
using System.Reflection;
using DbUp;
namespace GeoServerDbManager
{
//"Host = 1.1.1.1; User Id = postgres; Password = postgres; Database = osmdev; Port = 5432"
class Program
{
static int Main(string[] args)
{
var connectionString =
args.FirstOrDefault()
?? "Host = 1.1.1.1; User Id = postgres; Password = postgres; Database = osmdev; Port = 5432";
EnsureDatabase.For.PostgresqlDatabase(connectionString);
var upgrader =
DeployChanges.To
.PostgresqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.LogToConsole()
.Build();
var result = upgrader.PerformUpgrade();
if (!result.Successful)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(result.Error);
Console.ResetColor();
#if DEBUG
Console.ReadLine();
#endif
return -1;
}
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Success!");
Console.ResetColor();
return 0;
}
}
}
我运行这个时候数据库不存在。 我不断收到错误消息:
Script block number: 0; Message: 42P01: relation "schemaversions" does not exist
Npgsql.PostgresException (0x80004005): 42P01: relation "schemaversions" does not exist
确实创建了 table,模式版本 table 也创建了,但是脚本末尾的模式版本 table 是空的。
我知道这是一个老问题,但今天我 运行 遇到了同样的问题,因为还没有答案,所以我回答以供将来参考:
我发现 DbUp 正在尝试创建 "schemaversions" 但没有默认模式集。这导致错误:
Getting 'relation "schemaversions" does not exist error'
设置默认架构解决了我的问题:
builder.JournalToPostgresqlTable("SCHEMA_NAME", "schemaversions")