Agent v2 update schema

Feature(s) impacted

j’ai un agent V2 qui tourne, mon modele de base de données a changé je ne retrouve pas les changements, quand je fais un forest schema:update
× The liana is incompatible for update: Your project is not compatible with the lforest schema:update command. You need to use an agent version greater than 7.0.0.

Comment mettre a jour mon schéma dans forest ?

Observed behavior

l’update ne se fait pas

Expected behavior

que l’update se fasse

Context

  • Project name: MatisV2
  • Team name: Matis
  • Environment name: MatisV2
  • Agent (forest package) name & version: V2
  • Database type: postgresql / sequelize
  • Recent changes made on your end if any: …

[english below]

Bonjour @ptrognon,

La CLI n’est utilisable qu’avec l’agent v1, l’agent v2 n’en a pas besoin. Pour mettre à jour votre schema, redémarrez simplement votre agent, et rafraichissez le navigateur pour voir les changements.

edit: La cli est en fait bien utilisable en v2


Hi @ptrognon

The forest CLI is only usable with v1 agent, the v2 agent doesn’t need it. To update you schema, simply restart your agent and refresh your browser to see the changes.

edit: the CLI is indeed usable in v2

ok c’est ce que j’ai fait, npm start, et je n’ai pas les modifications

Quelles sont les modifications en question ?
Je ne vois aucun project au nom “MatisV2”, seulement un projet “Matis” dont l’agent a été mis à jour le 10 septembre.
Y a-t-il quelque chose d’inhabituel dans les logs de l’agent quand il démarre ?

oui pardon, c’est bien Matis et pas MatisV2, les logs non il dit qu’il s’est lancé

Aucun autre agent ne tourne sur le même environnement ?

et donc du coup la base a ete mis a jour mais l’agent ne le voit pas

non pas d’autre agent ne tourne sur cet env

voici ce que j’ai dans les répertoires

matis@sd-106167:~/MatisV2$ l
total 272
-rw-r–r-- 1 matis matis 2464 Dec 20 10:19 index.js
-rw-r–r-- 1 matis matis 550 Sep 10 12:47 index.ts
drwxr-xr-x 2 matis matis 4096 Dec 20 10:37 models
drwxr-xr-x 221 matis matis 12288 Sep 10 10:43 node_modules
-rw-r–r-- 1 matis matis 567 Sep 10 12:31 package.json
-rw-r–r-- 1 matis matis 111793 Sep 10 10:43 package-lock.json
-rw-r–r-- 1 matis matis 12288 Sep 10 11:22 tsconfig.json
-rw-r–r-- 1 matis matis 77 Dec 20 10:19 typings.js
-rw-r–r-- 1 matis matis 118667 Sep 10 10:16 typings.ts
matis@sd-106167:~/MatisV2$ l models/
total 80
-rw-r–r-- 1 matis matis 720 Sep 10 10:16 index.js
-rw-r–r-- 1 matis matis 1376 Dec 20 10:25 matis-artist-categories.js
-rw-r–r-- 1 matis matis 3263 Dec 20 10:25 matis-artist.js
-rw-r–r-- 1 matis matis 1349 Dec 20 10:25 matis-artist-options-category.js
-rw-r–r-- 1 matis matis 1288 Dec 20 10:25 matis-artist-options-country.js
-rw-r–r-- 1 matis matis 2067 Dec 20 10:25 matis-artist-options.js
-rw-r–r-- 1 matis matis 1357 Dec 20 10:25 matis-artist-rank.js
-rw-r–r-- 1 matis matis 1469 Dec 20 10:25 matis-chronological-progression-ca.js
-rw-r–r-- 1 matis matis 1382 Dec 20 10:25 matis-countries.js
-rw-r–r-- 1 matis matis 2773 Dec 20 10:25 matis-currency.js
-rw-r–r-- 1 matis matis 1607 Dec 20 10:25 matis-geographical-ca.js
-rw-r–r-- 1 matis matis 1342 Dec 20 10:25 matis-medium-ca.js
-rw-r–r-- 1 matis matis 1355 Dec 20 10:25 matis-price-index.js
-rw-r–r-- 1 matis matis 1502 Dec 20 10:25 matis-scraping-category.js
-rw-r–r-- 1 matis matis 1363 Dec 20 10:25 matis-segment-sold.js
-rw-r–r-- 1 matis matis 2718 Dec 20 10:25 matis-summary-data.js
-rw-r–r-- 1 matis matis 1354 Dec 20 10:25 matis-work-of-art-estimate-price.js
-rw-r–r-- 1 matis matis 1263 Dec 20 10:25 matis-work-of-art-hammer-price.js
-rw-r–r-- 1 matis matis 2606 Dec 20 10:37 matis-work-of-art.js
-rw-r–r-- 1 matis matis 1245 Dec 20 10:25 matis-work-of-art-tax-price.js

est ce que je dois supprimer dans models tous les .js sauf le index ?

ma base a changé mais quand je regarde dans le fichier .forestadmin-schema.json je ne retrouve pas les nouvelles colonne d’une table modidiée, et du coup dans models/ le .js correspondant pareil je ne retrouve pas mes nouvelles colonnes ?

bon j’ai refait un create project depuis le cli, relancé sur un autre port, récupéré le .forest-schema et les fichiers de models que j’ai recopié dans mon répertoire de mon projet initial et ca fonctionne

Les collections sont basées sur l’introspection de la base de donnée si vous utilisez une datasourceSQL.
Mais si vous utilisez sequelize, par exemple, la collections sont basées sur les modèles que vous avez défini dans votre code, peu importe la structure de votre base de données.

mmh ok mais quand je lance l’agent il génère bien les fichiers qui sont dans models/ donc quand je met a jour ma base je dois faire quoi ? (en fait creation d’un nouveau projet et recopie des fichiers de model et du .forest-schema ca fonctionne mais j’ai l’impression que ce n’est pas la méthode la plus propre)

Quel type de datasource utilisez-vous ?
Le .forest-schema est généré à chaque démarrage de l’agent, donc inutile de le copier manuellement.

Pouvez-vous me montrer le code de création de l’agent ?

Peut-être utilisez-vous une ancienne version de la CLI, “7.0.0” faisant référence à la v1 de l’agent.

import * as dotenv from ‘dotenv’;
dotenv.config();
import { createAgent } from ‘@forestadmin/agent’;
import { createSequelizeDataSource } from ‘@forestadmin/datasource-sequelize’;
//@ts-ignore
import * as models from ‘./models’;

(async () => {
await createAgent({
authSecret: ‘’+ process.env.FOREST_AUTH_SECRET,
envSecret: ‘’ + process.env.FOREST_ENV_SECRET,
isProduction: process.env.NODE_ENV === ‘production’,
})
.addDataSource(createSequelizeDataSource(models), {
})
.mountOnStandaloneServer(8888)
.start();
})();

comment je le vois ? et si oui comment je le met a jour ?