为什么我的测试用户数据库经常丢失?我会让我的 AWS 实例在夜间停止运行,然后在早上重新启动它。但是我无法使用我的 jdtest 用户帐户登录!我不断收到
为什么我的测试用户数据库经常丢失?
我会让 AWS 实例停止一夜,然后在早上重新启动它。但是,我无法使用我的 jdtest
用户帐户登录!
我的系统日志中不断出现以下内容
/var/lib/postgresql/log/postgresql-16-main.log
LOG: starting PostgreSQL 16.3 (Ubuntu 16.3-0ubuntu0.24.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit
LOG: listening on IPv4 address "0.0.0.0", port 5432
LOG: listening on IPv6 address "::", port 5432
LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
LOG: database system was shut down at 2024-06-06 15:42:30 UTC
LOG: database system is ready to accept connections
jdtest@jdtest FATAL: database "jdtest" does not exist
jdtest@jdtest FATAL: database "jdtest" does not exist
我能解决这个问题的唯一方法是重新发布:
CREATE USER jdtest createdb login PASSWORD 'jdtest' ;
CREATE DATABASE jdtest owner jdtest;
GRANT ALL PRIVILEGES ON DATABASE jdtest TO jdtest;
但同样的问题不断发生。:-(
默认 AWS 实例中是否存在某种非永久性,而我作为新手却没有注意到?我是否应该创建某种(更永久的??)AWS 数据存储和关联的 postgres tbs?
笔记:
DROP DATABASE
没有
我分享我自己的答案。
因此,无需使用 date()
, mtkime()
我就可以检索当前月份的十二个月。
为此,我们需要在循环之前实例化 dateTime,并从 1 个月递减到当前月份,而不是由 DateTime \'modify\' 属性生成的下一个月份 $test->modify('+1 month')
.
对于每个循环,我们将 DateTime 增加 +1 个月。
intlDateFormatter 负责格式化日期并进行翻译
参考: DateTime 的 按天评级
$now = Date('m');
$test = new DateTime('now - 1 month');
// or new DateTime('first day of this month - 1 month');
// it depends on whether you also manage the day
for ($x = $now ; $x < $now + 12 ; $x++) {
$test->modify('+1 month');
$use_formatter = new IntlDateFormatter('fr_FR');
$use_formatter->setTimeZone('Europe/Paris');
$use_formatter->setPattern('y-MMMM-MM');
$formated = $use_formatter->format($test);
var_dump($formated);
}