c# - 如何连接到已被强制删除并使用 postgresql 重新创建的测试数据库?
问题描述
我正在设置一些集成测试,我需要能够删除“testdb”以删除所有测试数据,创建“testdb”,然后运行迁移以更新架构。
我正在使用以下代码删除测试数据库:
DROP DATABASE IF EXISTS testdb WITH (FORCE);
然后我使用以下代码再次创建它:
CREATE DATABASE testdb TEMPLATE template0;
我能够重新创建它并运行迁移,但是每当我尝试连接到这个新的数据库实例并运行任何 SQL 时,我都会不断收到以下错误:
Npgsql.NpgsqlException : Exception while writing to stream
----> System.IO.IOException : Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host..
----> System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host.
我几乎可以肯定这是因为我已经强制删除了数据库,但我不确定为什么我无法重新连接到数据库并执行 SQL。
出于某种原因,连接似乎一直在引用 testdb 的“删除的实例”,而不是新创建的。无论如何我可以确保连接指向 testdb 的新实例吗?
解决方案
推荐阅读
- arrays - 给定一个整数 0 到 N 的数组,有多少种排列方式使得 array[i] 不能是 i
- asp.net - 在 mvc _layout 页面 mvc 5 中显示 webfroms
- security - Global.asa 黑客
- c# - 用于自定义矩阵类的 C# 集合初始化语法?
- javascript - Rails 5.2:jquery-rails 的问题
- javascript - 如何在javascript中格式化字符串
- c# - 带有 OData 控制器的 Swashbuckle
- wireshark - 如何在 Wireshark 中捕获 Telnet 流量?
- angular - 如何将解析器应用于多个路由
- java - 如何在netbeans的项目中创建具有特定类的可执行jar