la migración de trufas se reinicia desde la primera migración después de reiniciar testrpc

Estoy tratando de crear una especie de cadena privada en testrpc, así que uso testrpc -u 0 -d --db /path/to/dbpara iniciar testrpc cada vez. El caso es que si reinicio testrpc (lo mato y lo vuelvo a iniciar) truffle migratereinicia el proceso de migración desde el principio (1_*) aunque testrpc usa una base de datos de cadena antigua. ¿Hay alguna forma de evitar esto o es un problema?

Respuestas (1)

Cuando implementa un contrato en su cadena privada. Truffle almacena la identificación de red de su cadena para saber en qué cadena se implementó. (con la dirección en la cadena actual)

en build/contract/yourContract.json hay un campo

"networks": {
 "1": {  //live network
  "events": {},
  "links": {},
  "address": "0xd77d2a7a728dc7c7c58ac1bcfdfb35934b3ed066"
 },
 "15": { // network id I manually set
  "events": {},
  "links": {},
  "address": "0x1c10cbe2e883567eea5de1017f3d21b5b2600abb"
 },
 "1507630284099": { // timestamp generated by testrpc
  "events": {},
  "links": {},
  "address": "0xcdc26c0a2e7f43f4ad571373fc68c1a58ed8a25a"
 }
},

El problema que tiene es que no configura su ID de red con testrpc.

usar

-io --network-id: Especifique la identificación de la red que TestRPC usará para identificarse (el valor predeterminado es la hora actual o la identificación de la red de la cadena de bloques bifurcada, si está configurada) doc

testrpc -u 0 -d --db /path/to/db --network-id=15

para establecer una identificación, de modo que cuando reinicie su testrpc mantendrá su base de datos y cuando vuelva a ejecutarlo truffle migratele diráNetwork up to date.