jhipster / generator-jhipster-nodejs

A NodeJS blueprint that creates the backend using NestJS
https://www.npmjs.com/package/generator-jhipster-nodejs
Apache License 2.0
257 stars 81 forks source link

DataTypeNotSupportedError: Data type "blob" in "Post.content" is not supported by "postgres" database. #207

Closed wurst44 closed 3 years ago

wurst44 commented 3 years ago

when I try to run my prod build node server/dist/main.js or npm run test:e2e I am getting this error:

/usr/node-app # node server/dist/main.js
[Nest] 30   - 03/18/2021, 8:15:45 PM   [Config] Actual process.env.NODE_ENV value: prod
[Nest] 30   - 03/18/2021, 8:15:45 PM   [Config] Standard allowed values are: dev, test or prod
[Nest] 30   - 03/18/2021, 8:15:46 PM   [NestFactory] Starting Nest application... +697ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [InstanceLoader] AppModule dependencies initialized +143ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [InstanceLoader] TypeOrmModule dependencies initialized +0ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [InstanceLoader] PassportModule dependencies initialized +0ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [InstanceLoader] JwtModule dependencies initialized +1ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [InstanceLoader] ServeStaticModule dependencies initialized +0ms
[Nest] 30   - 03/18/2021, 8:15:46 PM   [TypeOrmModule] Unable to connect to the database. Retrying (1)... +158ms
DataTypeNotSupportedError: Data type "blob" in "Post.content" is not supported by "postgres" database.
    at new DataTypeNotSupportedError (/usr/node-app/server/node_modules/typeorm/error/DataTypeNotSupportedError.js:7:28)
    at /usr/node-app/server/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:77:27
    at Array.forEach (<anonymous>)
    at EntityMetadataValidator.validate (/usr/node-app/server/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:74:36)
    at /usr/node-app/server/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:42:74
    at Array.forEach (<anonymous>)
    at EntityMetadataValidator.validateMany (/usr/node-app/server/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:42:25)
    at Connection.buildMetadatas (/usr/node-app/server/node_modules/typeorm/connection/Connection.js:521:33)
    at Connection.<anonymous> (/usr/node-app/server/node_modules/typeorm/connection/Connection.js:127:30)
    at step (/usr/node-app/server/node_modules/typeorm/node_modules/tslib/tslib.js:141:27)
/usr/node-app # cat package.json
{
  "name": "blog",
  "version": "0.0.1-SNAPSHOT",
  "description": "Description for blog",
  "private": true,
  "license": "UNLICENSED",
  "cacheDirectories": [
    "node_modules"
  ],
  "dependencies": {
    "@angular/common": "9.0.4",
    "@angular/compiler": "9.0.4",
    "@angular/core": "9.0.4",
    "@angular/forms": "9.0.4",
    "@angular/localize": "9.0.4",
    "@angular/platform-browser": "9.0.4",
    "@angular/platform-browser-dynamic": "9.0.4",
    "@angular/router": "9.0.4",
    "@fortawesome/angular-fontawesome": "0.6.0",
    "@fortawesome/fontawesome-svg-core": "1.2.26",
    "@fortawesome/free-solid-svg-icons": "5.12.0",
    "@ng-bootstrap/ng-bootstrap": "6.0.0",
    "@ngx-translate/core": "11.0.1",
    "@ngx-translate/http-loader": "4.0.0",
    "bootstrap": "4.4.1",
    "moment": "2.24.0",
    "ng-jhipster": "0.12.0",
    "ngx-cookie": "4.0.2",
    "ngx-infinite-scroll": "8.0.1",
    "ngx-webstorage": "5.0.0",
    "rxjs": "6.5.3",
    "swagger-ui-dist": "3.24.3",
    "tslib": "1.10.0",
    "zone.js": "0.10.2"
  },
  "devDependencies": {
    "@angular/cli": "9.0.4",
    "@angular/compiler-cli": "9.0.4",
    "@ngtools/webpack": "9.0.4",
    "@openapitools/openapi-generator-cli": "1.0.10-4.2.3",
    "@types/chai": "4.2.7",
    "@types/chai-string": "1.4.2",
    "@types/jest": "24.0.23",
    "@types/mocha": "5.2.7",
    "@types/node": "12.12.17",
    "@types/selenium-webdriver": "4.0.5",
    "@typescript-eslint/eslint-plugin": "2.11.0",
    "@typescript-eslint/eslint-plugin-tslint": "2.11.0",
    "@typescript-eslint/parser": "2.11.0",
    "autoprefixer": "9.7.3",
    "base-href-webpack-plugin": "2.0.0",
    "browser-sync": "2.26.7",
    "browser-sync-webpack-plugin": "2.2.2",
    "chai": "4.2.0",
    "chai-as-promised": "7.1.1",
    "chai-string": "1.5.0",
    "codelyzer": "5.2.0",
    "copy-webpack-plugin": "5.1.1",
    "css-loader": "3.3.2",
    "eslint": "6.7.2",
    "eslint-config-jhipster": "0.0.1",
    "eslint-config-prettier": "6.7.0",
    "eslint-loader": "3.0.3",
    "file-loader": "5.0.2",
    "friendly-errors-webpack-plugin": "1.7.0",
    "generator-jhipster": "6.8.0",
    "generator-jhipster-nodejs": "1.4.0",
    "html-loader": "0.5.5",
    "html-webpack-plugin": "3.2.0",
    "husky": "3.1.0",
    "jest": "24.9.0",
    "jest-date-mock": "1.0.7",
    "jest-junit": "10.0.0",
    "jest-preset-angular": "8.0.0",
    "jest-sonar-reporter": "2.0.0",
    "lint-staged": "8.2.1",
    "merge-jsons-webpack-plugin": "1.0.20",
    "mini-css-extract-plugin": "0.8.0",
    "mocha": "6.2.2",
    "moment-locales-webpack-plugin": "1.1.2",
    "optimize-css-assets-webpack-plugin": "5.0.3",
    "postcss-loader": "3.0.0",
    "prettier": "1.19.1",
    "protractor": "5.4.3",
    "reflect-metadata": "0.1.13",
    "rimraf": "3.0.0",
    "sass": "1.23.7",
    "sass-loader": "8.0.0",
    "simple-progress-webpack-plugin": "1.1.2",
    "style-loader": "1.0.1",
    "terser-webpack-plugin": "2.3.0",
    "thread-loader": "2.1.3",
    "to-string-loader": "1.1.6",
    "ts-loader": "6.2.1",
    "ts-node": "8.5.4",
    "tslint": "6.0.0",
    "typescript": "3.7.5",
    "webdriver-manager": "12.1.7",
    "webpack": "4.41.2",
    "webpack-bundle-analyzer": "3.6.0",
    "webpack-cli": "3.3.10",
    "webpack-dev-server": "3.9.0",
    "webpack-merge": "4.2.2",
    "webpack-notifier": "1.8.0",
    "workbox-webpack-plugin": "4.3.1",
    "write-file-webpack-plugin": "4.5.1"
  },
  "engines": {
    "node": ">=8.9.0"
  },
  "scripts": {
    "prettier:format": "prettier --write \"{,src/**/}*.{md,json,ts,css,scss,yml}\"",
    "lint": "eslint . --ext .js,.ts",
    "lint:fix": "npm run lint -- --fix",
    "ngc": "ngc -p tsconfig-aot.json",
    "cleanup": "rimraf target/classes/static/ target/classes/aot",
    "clean-www": "rimraf target/classes/static/app/{src,target/}",
    "e2e": "protractor src/test/javascript/protractor.conf.js",
    "postinstall": "node node_modules/protractor/bin/webdriver-manager update --gecko false",
    "preinstall": "cd server && npm run lint:fix",
    "start": "npm run webpack:dev",
    "start:app": "npm run build && cd server && npm run start",
    "start-tls": "npm run webpack:dev -- --env.tls",
    "serve": "npm run start",
    "build": "npm run webpack:prod",
    "build:app": "npm run build && cd server && npm run build",
    "test": "npm run lint && jest --coverage --logHeapUsage -w=2 --config src/test/javascript/jest.conf.js",
    "test:watch": "npm run test -- --watch",
    "webpack:dev": "npm run webpack-dev-server -- --config webpack/webpack.dev.js --inline --hot --port=9060 --watch-content-base --env.stats=minimal",
    "webpack:dev-verbose": "npm run webpack-dev-server -- --config webpack/webpack.dev.js --inline --hot --port=9060 --watch-content-base --profile --progress --env.stats=normal",
    "webpack:build:main": "npm run webpack -- --config webpack/webpack.dev.js --env.stats=minimal",
    "webpack:build": "npm run cleanup && npm run webpack:build:main",
    "webpack:prod:main": "npm run webpack -- --config webpack/webpack.prod.js --profile",
    "webpack:prod": "npm run cleanup && npm run webpack:prod:main && npm run clean-www",
    "webpack:test": "npm run test",
    "webpack-dev-server": "node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js",
    "webpack": "node --max_old_space_size=4096 node_modules/webpack/bin/webpack.js"
  },
  "jestSonar": {
    "reportPath": "target/test-results/jest",
    "reportFile": "TESTS-results-sonar.xml"
  }
}
/usr/node-app # cat .yo-rc.json
{
  "generator-jhipster": {
    "authenticationType": "jwt",
    "cacheProvider": "no",
    "clientFramework": "angularX",
    "serverPort": "8080",
    "serviceDiscoveryType": false,
    "skipUserManagement": false,
    "baseName": "blog",
    "buildTool": "maven",
    "databaseType": "sql",
    "devDatabaseType": "sqlite",
    "enableHibernateCache": false,
    "enableSwaggerCodegen": false,
    "enableTranslation": true,
    "jhiPrefix": "myapp",
    "languages": ["en", "fr"],
    "messageBroker": false,
    "nativeLanguage": "en",
    "prodDatabaseType": "postgresql",
    "searchEngine": false,
    "skipClient": false,
    "testFrameworks": ["protractor"],
    "websocket": false,
    "packageName": "com.jhipster.node",
    "packageFolder": "com/jhipster/node",
    "blueprints": [
      {
        "name": "generator-jhipster-nodejs",
        "version": "1.4.0"
      }
    ],
    "applicationType": "monolith",
    "clientPackageManager": "npm",
    "clientTheme": "none",
    "clientThemeVariant": "dark",
    "jhipsterVersion": "6.8.0",
    "creationTimestamp": 1616090340847,
    "skipServer": false,
    "useSass": true,
    "jwtSecretKey": "xxx=",
    "embeddableLaunchScript": false,
    "entitySuffix": "",
    "dtoSuffix": "DTO",
    "otherModules": [
      {
        "name": "generator-jhipster-nodejs",
        "version": "1.4.0"
      }
    ]
  },
  "entities": ["Blog", "Post", "Tag"]
}

any idea? thx

ghost commented 3 years ago

Ho @wurst44 thanks for the interest! Well, NHipster uses for entity generation the TypeORM library, and seems that for postgres blob type is not supported: https://github.com/typeorm/typeorm/blob/master/docs/entities.md#column-types-for-postgres

wurst44 commented 3 years ago

yes the problem was JDL TextBlob. thx, keep on ;)