Importando Dados de um Arquivo CSV para o PostgreSQL Usando PDO::pgsqlCopyFromArray no Laravel
O método PDO::pgsqlCopyFromArray permite copiar dados de um array diretamente para uma tabela no PostgreSQL. Este tutorial mostra como usar... Leia mais
Desenvolvedor de Software
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de dados. Uma situação específica é definir o ano atual como valor padrão para uma coluna. Este tutorial mostrará como fazer isso de maneira uniforme, independente do banco de dados escolhido, com exemplos específicos para MySQL e PostgreSQL.
Primeiro, crie a migration para adicionar a coluna ano à sua tabela. Use o comando Artisan para gerar a migration:
php artisan make:migration add_ano_to_exemplos_table --table=exemplos
No arquivo de migration gerado, adicione a coluna ano com o valor padrão apropriado, dependendo do banco de dados:
public function up()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->integer('ano')->nullable()->default(DB::raw('YEAR(CURDATE())'));
});
}
public function down()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->dropColumn('ano');
});
}
public function up()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->integer('ano')->nullable()->default(DB::raw('EXTRACT(YEAR FROM CURRENT_DATE)'));
});
}
public function down()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->dropColumn('ano');
});
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Exemplo extends Model
{
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
if (is_null($model->ano)) {
$model->ano = date('Y');
}
});
}
}
Depois de realizado os passos acima execute as migrations
php artisan migrate
Para garantir que tudo está funcionando conforme o esperado, você pode testar criando um novo registro na tabela exemplos. No Tinker ou em um controlador, crie um novo registro sem especificar o valor da coluna ano:
use App\Models\Exemplo;
$newRecord = Exemplo::create([
'status' => 'AGUARDANDO'
]);
echo $newRecord->ano; // Deve exibir o ano atual
O método PDO::pgsqlCopyFromArray permite copiar dados de um array diretamente para uma tabela no PostgreSQL. Este tutorial mostra como usar... Leia mais
Recentemente enquanto utilizava o Linux Mint 21 Vera tive uma série de problemas ao instalar o PGAdmin 4 e numa... Leia mais
Configurar e gerenciar bancos de dados pode ser uma tarefa desafiadora, especialmente quando você precisa garantir a portabilidade e a... Leia mais
O Git é uma ferramenta poderosa para controle de versão, amplamente utilizada por desenvolvedores. Ao trabalhar com repositórios Git, é... Leia mais