小编mic*_*doo的帖子

如何为数据库(特别是Symfony)存储所需的"基础"或"初始"数据?

我使用doctrine迁移包来跟踪数据库结构中的更改.我想确保在为我的应用程序部署/添加新服务器时:

  • (A)数据库架构是最新的(学说:迁移:迁移)
  • (B)数据库始终包含预定义的数据集

对于(B),一个很好的例子是角色.我希望始终存在一组特定的角色.我意识到数据库迁移是可能的,但我不喜欢将模式更改与数据更改混合在一起的想法.此外,如果我使用MySql迁移,我将不得不为我的测试数据库创建一个等效的Sqlite迁移.

我知道的另一个选择是数据夹具.然而,通过阅读文档,我感觉夹具更适合加载测试数据.此外,如果我更改了角色名称,我不知道如何使用fixture更新它(因为它们要么在加载或追加之前删除数据库中的所有数据).如果我使用append,那么唯一键也是一个问题.

我正在考虑创建一些带有一组配置文件的命令,并确保某些表总是处于与配置文件匹配的一致状态 - 但如果存在另一个选项,我当然希望使用它.

处理将所需数据加载到数据库中的最佳方法是什么?

database symfony doctrine-orm

11
推荐指数
1
解决办法
1515
查看次数

wget一起使用--timeout和--tries

退出之前你期望这个命令需要多长时间?

wget --timeout=1 --tries=2 "http://www.google.com:81/not-there"

我希望超时1秒,2次尝试意味着2秒,但需要6.025秒

wget --timeout=1 --tries=2 "http://www.google.com:81/not-there"
--2017-04-27 16:49:12--http://www.google.com:81/not-there
Resolving www.google.com (www.google.com)... 209.85.203.105, 209.85.203.103, 209.85.203.99, ...
Connecting to www.google.com (www.google.com)|209.85.203.105|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|209.85.203.103|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|209.85.203.99|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|209.85.203.104|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|209.85.203.106|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|209.85.203.147|:81... failed: Connection timed out.
Connecting to www.google.com (www.google.com)|2a00:1450:4009:80d::2004|:81... failed: Network is unreachable.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它在戒烟前尝试了6次.

这似乎tries是重试.如果我设置--retry-connrefused …

linux bash wget

9
推荐指数
1
解决办法
1万
查看次数

Symfony 如何加载端到端测试的测试环境?

我正在开发另一个使用端到端测试和.env文件的 PHP 项目。但是,在运行测试之前,我需要修改.env文件以指向测试数据库(而不是开发数据库)。当我从事 Symfony 项目时,我认为我不需要这样做,它只是自动加载测试环境。

我从以前使用旧版本的一些经验知道,每个环境曾经有一个不同的前端控制器,例如app.phpapp_dev.php等等,但据我所知,现在情况并非如此。

Symfony 如何知道加载测试环境以进行端到端测试?

php phpunit symfony

3
推荐指数
1
解决办法
3966
查看次数

分配时的Bitshift对变量没有影响

我以为我在这个答案中找到了类似的东西但是在那种情况下他们没有将表达式的结果赋给变量.在我的情况下,我正在分配它,但表达式的bitshift部分没有任何效果.

unsigned leftmost1 = ((~0)>>20);
printf("leftmost1 %u\n", leftmost1);
Run Code Online (Sandbox Code Playgroud)

返回

leftmost1 4294967295
Run Code Online (Sandbox Code Playgroud)

unsigned leftmost1 = ~0;
leftmost1 = leftmost1 >> 20;
printf("leftmost1 %u\n", leftmost1);
Run Code Online (Sandbox Code Playgroud)

给我

leftmost1 4095
Run Code Online (Sandbox Code Playgroud)

我希望将逻辑分成两行没有影响,为什么结果不同?

c bit-manipulation bit-shift

1
推荐指数
1
解决办法
101
查看次数

标签 统计

symfony ×2

bash ×1

bit-manipulation ×1

bit-shift ×1

c ×1

database ×1

doctrine-orm ×1

linux ×1

php ×1

phpunit ×1

wget ×1