Giter VIP home page Giter VIP logo

Comments (11)

Mazwak avatar Mazwak commented on May 16, 2024

Testé avec Firefox 93 et Edge 94

from mercator.

dbarzin avatar dbarzin commented on May 16, 2024

As-tu bien la dernière version du projet ?
Pourrais-tu poster la source de la page ?

from mercator.

Mazwak avatar Mazwak commented on May 16, 2024

Il se trouve que Laravel, pour un « char » dans Postgre crée un « bpchar » au lieu d’un « varchar ».

« bpchar », c’est « blank padded character », donc c’est le nom du routeur qui fait 255 caractères.

Tous les autres « name » dans mercator sont des « string ». Et du coup, cela devient des « varchar ».

from mercator.

Mazwak avatar Mazwak commented on May 16, 2024

Je suppose que le nom d’un routeur physique devrait être aussi un « string ».
Je ne sais pas s’il est possible de faire "table->string("name")->change();" sur une colonne « char ».

Sinon, il faut le faire en SQL, mais ça fait autant de requête que de base de données supportées.

from mercator.

dbarzin avatar dbarzin commented on May 16, 2024

Laravel devrait fonctionner avec PostgreSQL 9.6+ ( https://laravel.com/docs/8.x/database )
Quelle version de PostgreSQL utilises-tu ? Avec quel OS ?

from mercator.

Mazwak avatar Mazwak commented on May 16, 2024

Nous nous sommes mal compris.
Cela marche très bien avec Postgre.

Mais la création de la colonne « name » pour « physical_routeur » utilise $table->char() au lieu de $table->string().
Tous les autres « name » utilisent « string() ».

à comparer avec

Je pense que la différence vient de cette phrase, de la documentation MySQL :

When CHAR values are retrieved, trailing spaces are removed unless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.

https://dev.mysql.com/doc/refman/8.0/en/char.html

alors que Postgre renvoie la chaîne avec les espaces à droite.

Je ne peux pas vérifier en dehors du boulot, mais j’utilise Postgre fourni dans une Ubuntu 20.04. Probablement 12.x.

from mercator.

dbarzin avatar dbarzin commented on May 16, 2024

Corrigé, le type du champ nom a été modifié de "char" en "string".
pour appliquer la modification :
git pull
php artisan migrate

from mercator.

Mazwak avatar Mazwak commented on May 16, 2024

Cela ne fonctionne pas avec Postgre.
J’ai regardé la migration, et elle est spécifique à MySQL.

J’ai essayé de faire fonctionner avec les migrations Laravel et ce post :
https://medium.com/@matriphe/adding-custom-char-type-in-laravel-migration-780d8a9cac29

La migration se déroule sans erreur, mais la colonne ne change pas de type.

Je ne pourrai pas regarder plus aujourd’hui.

Il y a sûrement moyen de la faire comme pour MySQL, mais cela fera une requête spécifique par base de données.

from mercator.

dbarzin avatar dbarzin commented on May 16, 2024

Voici la commande SQL pour PostgresSQL:
ALTER TABLE physical_routers ALTER COLUMN name TYPE varchar(255);
Pour la migration, il faut supprimer le code de la fonction up() et exécuter.

from mercator.

Mazwak avatar Mazwak commented on May 16, 2024

Merci pour la requête.

Par contre, cela touchera tous ceux qui utilise postgre.

Personnellement, je pense que ce serait mieux de modifier la migration initiale.

Le nombre de personne utilisant mercator actuellement avec une base postgre doit être assez limité, et cela permettra d’éviter le problème totalement pour tous les nouveaux utilisateurs.

from mercator.

dbarzin avatar dbarzin commented on May 16, 2024

Bonne remarque, c'est fait.
Merci !

from mercator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.