मैं इस त्रुटि में भागता रहता हूं

noteful-json-server@0.0.1 migrate /Users/jessicayiphome/Desktop/Projects/noteful-client-db-master-17.19
> postgrator --config postgrator-config.js

[11:04:50 AM] version of database is: 2
[11:04:50 AM] migrating up to 2
[11:04:50 AM] verifying checksum of migration 001.do.create_folders_table.sql
Error: MD5 checksum failed for migration [1]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! noteful-json-server@0.0.1 migrate: `postgrator --config postgrator-config.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the noteful-json-server@0.0.1 migrate script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jessicayiphome/.npm/_logs/2020-08-25T15_04_50_228Z-debug.log

जब मैं दौड़ता हूँ npm run migrate यहाँ मेरा पैकेज है। जेसन:

"scripts": {
"test": "mocha --require test/setup.js",
"dev": "nodemon src/server.js",
"migrate": "postgrator --config postgrator-config.js",
"migrate:test": "env NODE_ENV=test npm run migrate",
"migrate:production": "heroku run npm run migrate",
"start": "node src/server.js",
"deploy": "git push heroku master",
"postdeploy": "npm run migrate:production"

और ये रहा मेरा postgrator-config.js

'use strict';
require('dotenv').config();

module.exports = {
  "migrationDirectory": "migrations",
  "driver": "pg",
  "connectionString": process.env.DATABASE_URL
};
1
Jessica Yip 25 अगस्त 2020, 18:14

2 जवाब

सबसे बढ़िया उत्तर

मुझे वही त्रुटि मिल रही थी, जो मेरे लिए काम करती थी वह थी npm माइग्रेट - 0। फिर npm माइग्रेट चलाएं जो इसे अपग्रेड किए गए माइग्रेशन पर सेट कर देगा।

0
LVM-sharingan 20 सितंबर 2020, 22:04

क्या

त्रुटि आपको बता रही है कि माइग्रेशन स्क्रिप्ट 001.do.create_folders_table.sql पहली बार बनाए जाने के बाद से बदल गई है। त्रुटि को ठीक करने के लिए आपको यह सुनिश्चित करने की आवश्यकता है कि फ़ाइल की सामग्री ठीक वैसी ही है जैसी वे तब थी जब स्क्रिप्ट पहली बार चलती थी। क्या आप फ़ाइल के पुराने संस्करण को देखने के लिए git का उपयोग कर सकते हैं?

क्यों

चेकसम वर्णों की एक स्ट्रिंग है जिसे हैश कहा जाता है। इसे md5 नामक एल्गोरिथम के इनपुट के रूप में स्क्रिप्ट का उपयोग करके बनाया गया है। आपकी मशीन के आधार पर, आपके पास md5 का कमांड लाइन संस्करण हो सकता है जिसे आप स्वयं आज़मा सकते हैं। md5 001.do.create_folders_table.sql आज़माएं और आप आउटपुट देखेंगे। शायद कुछ ऐसा: ce662acdd491b642c6db551983f878cd

पोस्टग्रेटर इन md5 हैश को स्टोर करता है। यह सुनिश्चित करने के लिए कि हर बार माइग्रेशन चलाने पर डेटाबेस को उसी स्थिति में रखा जाता है, यह स्क्रिप्ट को md5 के माध्यम से रखेगा और परिणाम की तुलना संग्रहीत संस्करण से करेगा। यदि वर्तमान संस्करण और सॉर्टेड संस्करण अलग हैं, तो स्क्रिप्ट बदल गई होगी जिसका अर्थ है कि माइग्रेशन चलाना सुरक्षित नहीं है।

0
Parker Tailor 3 सितंबर 2020, 04:18