-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gerenciamento de usuário criar campos adicionais tabela #31
base: develop
Are you sure you want to change the base?
The head ref may contain hidden characters: "gerenciamento-de-usu\u00E1rio-criar-campos-adicionais---tabela"
Gerenciamento de usuário criar campos adicionais tabela #31
Conversation
WalkthroughAs alterações envolvem a adição de novos campos de localização e identificação social para o modelo de usuário. A migração do banco de dados foi atualizada para incluir colunas para Changes
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🔇 Additional comments (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments.
Actionable comments posted: 3
🛑 Comments failed to post (3)
database/migrations/2024_11_29_185241_add_new_fields.php (1)
14-19:
⚠️ Potential issueMigração duplicada e conflitante detectada
Esta migração apresenta problemas críticos:
- Os campos
city
,state
ediscord
já estão definidos emcreate_users_table.php
- O campo
- Ter duas migrações definindo as mesmas colunas causará erro
Recomendação: Esta migração deve ser removida pois os campos já existem em
create_users_table.php
. Se necessário remover o LinkedIn, crie uma migração específica para isso.app/Models/User.php (1)
27-30:
⚠️ Potential issueRemover campo 'linkedin' do array $fillable
O campo 'linkedin' ainda está presente no array
$fillable
mas deveria ser removido conforme objetivo do PR.protected $fillable = [ 'uuid', 'name', 'email', 'password', 'city', 'state', - 'linkedin', 'discord', 'permission', ];
Committable suggestion skipped: line range outside the PR's diff.
database/migrations/2024_01_25_210912_create_users_table.php (1)
20-22: 💡 Codebase verification
Confirmada a necessidade de validações para os novos campos
Após análise do código, confirmo que não existem validações implementadas para os campos
city
,state
ediscord
. Os campos estão corretamente definidos na migration e configurados comofillable
no modelo User, porém as validações sugeridas ainda não foram implementadas:
- Validação de estados válidos para o campo
state
- Validação de formato para o campo
discord
(username#0000)🔗 Analysis chain
Considerar adição de validações para os novos campos
A implementação dos novos campos está correta, porém sugiro algumas melhorias:
- Para o campo
state
, considerar usar um enum ou check constraint para garantir apenas estados válidos- Para o campo
discord
, considerar adicionar uma validação de formato (ex: username#0000)🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verificar se já existem validações implementadas rg -l "discord.*validate|state.*validate" app/Length of output: 48
Script:
#!/bin/bash # Procurar por arquivos de validação e regras relacionadas aos novos campos echo "=== Procurando classes Request ===" fd -e php request app/ echo -e "\n=== Procurando modelo User ===" fd -e php "User.php" app/Models/ echo -e "\n=== Procurando regras nos arquivos encontrados ===" rg -l "city|state|discord" app/Length of output: 404
Script:
#!/bin/bash echo "=== Conteúdo do Model User ===" cat app/Models/User.phpLength of output: 1248
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apos ser criado os novos campos atraves da nova migration (2024_11_29_185241_add_new_fields.php) eh necessario remover os mesmos da migration de usuario.
Ver documentacao do laraval sobre migration, toda e qualquer alteracao feita em banco de dados, devem ser feitas a partir da criacao de novos arquivos de migrations e nao alterando as ja existentes, visto que pode ocorrer conflitos tentar rodar essas operacoes na base de dados, como ocorre no momento.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Todos os campos que estao sendo duplicados em users e na migration 2024_11_29_185241_add_new_fields dao erro, sendo necessario a remocao de todos, foi removido apenas linkedin. Para fins de teste, apos alteracoes, caso nao seja possivel reconstruir o banco de dados com o php artisan migrate:fresh
, sugiro criar um novo banco de dados e fazer o apontamento para teste, APENAS PARA TESTE rodando o comando php artisan migrate
@mgescobar dá uma olhada nessa questão para nós? |
@@ -19,7 +19,6 @@ public function up(): void | |||
$table->string('password'); | |||
$table->string('city', 60)->nullable(); | |||
$table->string('state', 20)->nullable(); | |||
$table->string('linkedin', 101)->nullable()->unique(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mgescobar normalmente, não se mexe em migrations antigas.
O ideal é criar uma nova migration, que será responsavel por modificar a tabela, removendo o campo no UP e o adicionando novamente no DOWN.
Sugestão
// php artisan make:migration remove_linkedin_column_from_users_table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table
->dropColumn('linkedin');
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table
->string('linkedin')
->nullable()
->unique()
->after('password');
});
}
};
Removido o campo "linkedin" já existente conforme relato do @lthurler
Summary by CodeRabbit
Novos Recursos
Alterações de Banco de Dados