我在一个使用多个数据库的项目中工作.看起来Laravel只使用设置为默认值的数据库中的migrations-table.我希望每个数据库有一个迁移表,用于记录已对该特定数据库执行的迁移.这可能吗?
我在配置中定义了数据库,如下所示:
'connections' => [
'db1' => array(
'driver' => 'mysql',
'host' => 'db1.host',
'database' => 'db1',
'username' => 'username',
'password' => 'password',
),
'db2' => [
'driver' => 'mysql',
'host' => 'db2.host',
'database' => 'db2',
'username' => 'username',
'password' => 'password',
]
],
Run Code Online (Sandbox Code Playgroud)
我还将第一个数据库(db1)设为默认数据库
'default' => 'db1'
Run Code Online (Sandbox Code Playgroud)
我在两个数据库上安装迁移表
artisan migrate:install --database=db1
artisan migrate:install --database=db2
Run Code Online (Sandbox Code Playgroud)
之后,我继续创建几个数据库特定的迁移
在db1数据库中创建表test1:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTest1Table extends Migration
{
public function up()
{
Schema::connection('db1')->create('test1', function(Blueprint $table)
{
$table->increments('id')->unsigned();
});
}
public function down() …Run Code Online (Sandbox Code Playgroud) 我试图通过使用ssh-add向其添加新密钥来控制系统ssh-agent.为此我正在使用Symfony Process组件.
当我从一个网站运行这个代码时它工作得很好但是当我在shell/console中运行相同的代码时,ssh-add进程挂起 Enter passphrase for <path to key>:
代码的简化版本看起来像这样
use Symfony\Component\Process\Process;
$keyPath = '<path to key>';
$keyPassword = '<password for unlocking the key>';
$socketPath = '<path to ssh-agent socket>';
$sshAdd = new Process(
"ssh-add {$keyPath}",
null,
[
'SSH_AUTH_SOCK' => $socketPath
],
$keyPassword
);
$sshAdd->run();
Run Code Online (Sandbox Code Playgroud)
正如您在上面的代码中看到的那样,我打电话给ssh-add,SSH_AUTH_SOCK在环境中设置,以便ssh-add与代理交谈,然后在输入中发送密码.正如我之前所说,当我在Web上下文中运行它时,它可以工作但它挂在shell /控制台上下文中.
我strace在控制台中运行时做了一个,相关部分看起来像这样
open("<path to key>", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
write(4, "<key password>", <length of password>) = 20
close(4) = 0 …Run Code Online (Sandbox Code Playgroud) 出于某种原因,我最近所有的 git 提交都提交了错误的日期。
我昨天提交了两次,今天提交了一次,它们都显示为16 天前提交。更具体地说,2014 年 10 月 31 日星期五 15:32:21 +0100。
date在我的电脑上运行产生Sun 16 Nov 2014 12:55:08 CET,所以我的电脑时间是正确的。
将存储库推送到 GitHub 时,问题仍然存在。
更新 #1:
有问题的存储库可以在 Github上找到
该文件列表显示提交制成,当这样写,26分钟前。哪个是正确的。
在提交日志已在正确的日期提交,但显示着15天以前
更新#2:
操作系统:
Darwin Juno.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64.
Run Code Online (Sandbox Code Playgroud)
GIT 版本:
git version 1.8.5.2 (Apple Git-48)
Run Code Online (Sandbox Code Playgroud)
GIT 环境变量:
GIT_DIR=.git
GIT_AUTHOR_DATE=@1414765941 +0100
GIT_INDEX_FILE=.git/index
GIT_AUTHOR_NAME=codeaken
GIT_PREFIX=
GIT_AUTHOR_EMAIL=<removed>
Run Code Online (Sandbox Code Playgroud)