mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-26 12:21:36 +03:00
Added library for extracting database information
refs https://github.com/TryGhost/Toolbox/issues/175 - we're going to be making some changes in v5 wrt supported databases - we needed a way of detecting the difference between MySQL 5 + 8, MariaDB etc - I've created `@tryghost/database-info`, which is a small wrapper around `knex`, which returns this information - this commit: - adds the library to Ghost - initializes the DB info library upon boot - updates the Admin API /config/ endpoint and UpdateCheck to return the new string - `mysql5`, `mysql8` etc
This commit is contained in:
parent
7466ab340c
commit
eb68e8d339
@ -58,6 +58,9 @@ async function initDatabase({config}) {
|
|||||||
const DatabaseStateManager = require('./server/data/db/state-manager');
|
const DatabaseStateManager = require('./server/data/db/state-manager');
|
||||||
const dbStateManager = new DatabaseStateManager({knexMigratorFilePath: config.get('paths:appRoot')});
|
const dbStateManager = new DatabaseStateManager({knexMigratorFilePath: config.get('paths:appRoot')});
|
||||||
await dbStateManager.makeReady();
|
await dbStateManager.makeReady();
|
||||||
|
|
||||||
|
const databaseInfo = require('./server/data/db/info');
|
||||||
|
await databaseInfo.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
4
core/server/data/db/info.js
Normal file
4
core/server/data/db/info.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
const connection = require('./connection');
|
||||||
|
const DatabaseInfo = require('@tryghost/database-info');
|
||||||
|
|
||||||
|
module.exports = new DatabaseInfo(connection);
|
@ -1,13 +1,14 @@
|
|||||||
const {isPlainObject} = require('lodash');
|
const {isPlainObject} = require('lodash');
|
||||||
const config = require('../../../shared/config');
|
const config = require('../../../shared/config');
|
||||||
const labs = require('../../../shared/labs');
|
const labs = require('../../../shared/labs');
|
||||||
|
const databaseInfo = require('../../data/db/info');
|
||||||
const ghostVersion = require('@tryghost/version');
|
const ghostVersion = require('@tryghost/version');
|
||||||
|
|
||||||
module.exports = function getConfigProperties() {
|
module.exports = function getConfigProperties() {
|
||||||
const configProperties = {
|
const configProperties = {
|
||||||
version: ghostVersion.full,
|
version: ghostVersion.full,
|
||||||
environment: config.get('env'),
|
environment: config.get('env'),
|
||||||
database: config.get('database').client,
|
database: databaseInfo.getEngine(),
|
||||||
mail: isPlainObject(config.get('mail')) ? config.get('mail').transport : '',
|
mail: isPlainObject(config.get('mail')) ? config.get('mail').transport : '',
|
||||||
useGravatar: !config.isPrivacyDisabled('useGravatar'),
|
useGravatar: !config.isPrivacyDisabled('useGravatar'),
|
||||||
labs: labs.getAll(),
|
labs: labs.getAll(),
|
||||||
|
@ -4,6 +4,7 @@ const api = require('./api');
|
|||||||
const config = require('../shared/config');
|
const config = require('../shared/config');
|
||||||
const urlUtils = require('./../shared/url-utils');
|
const urlUtils = require('./../shared/url-utils');
|
||||||
const jobsService = require('./services/jobs');
|
const jobsService = require('./services/jobs');
|
||||||
|
const databaseInfo = require('./data/db/info');
|
||||||
|
|
||||||
const request = require('@tryghost/request');
|
const request = require('@tryghost/request');
|
||||||
const ghostVersion = require('@tryghost/version');
|
const ghostVersion = require('@tryghost/version');
|
||||||
@ -44,7 +45,7 @@ module.exports = async () => {
|
|||||||
config: {
|
config: {
|
||||||
mail: config.get('mail'),
|
mail: config.get('mail'),
|
||||||
env: config.get('env'),
|
env: config.get('env'),
|
||||||
databaseType: config.get('database').client,
|
databaseType: databaseInfo.getEngine(),
|
||||||
checkEndpoint: config.get('updateCheck:url'),
|
checkEndpoint: config.get('updateCheck:url'),
|
||||||
isPrivacyDisabled: config.isPrivacyDisabled('useUpdateCheck'),
|
isPrivacyDisabled: config.isPrivacyDisabled('useUpdateCheck'),
|
||||||
notificationGroups: config.get('notificationGroups'),
|
notificationGroups: config.get('notificationGroups'),
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
"@tryghost/config-url-helpers": "0.1.3",
|
"@tryghost/config-url-helpers": "0.1.3",
|
||||||
"@tryghost/constants": "1.0.0",
|
"@tryghost/constants": "1.0.0",
|
||||||
"@tryghost/custom-theme-settings-service": "0.3.1",
|
"@tryghost/custom-theme-settings-service": "0.3.1",
|
||||||
|
"@tryghost/database-info": "0.1.0",
|
||||||
"@tryghost/debug": "0.1.10",
|
"@tryghost/debug": "0.1.10",
|
||||||
"@tryghost/email-analytics-provider-mailgun": "1.0.7",
|
"@tryghost/email-analytics-provider-mailgun": "1.0.7",
|
||||||
"@tryghost/email-analytics-service": "1.0.5",
|
"@tryghost/email-analytics-service": "1.0.5",
|
||||||
|
@ -1360,6 +1360,11 @@
|
|||||||
"@tryghost/tpl" "^0.1.4"
|
"@tryghost/tpl" "^0.1.4"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
|
"@tryghost/database-info@0.1.0":
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tryghost/database-info/-/database-info-0.1.0.tgz#881e47e802fc2ae321d8c42d17a2a1cb8e4da143"
|
||||||
|
integrity sha512-3Nwo6pGR8yXrhSky2Uikz8oEKJsBLuaG68rcwIsMB6kFoWR3q7uAMWPvw3jIzVNnkZE1FQPb36w4z1t/v7dujw==
|
||||||
|
|
||||||
"@tryghost/debug@0.1.10", "@tryghost/debug@^0.1.10":
|
"@tryghost/debug@0.1.10", "@tryghost/debug@^0.1.10":
|
||||||
version "0.1.10"
|
version "0.1.10"
|
||||||
resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.10.tgz#26d67921c3edd562c7d2bee136d04faefa99bb3c"
|
resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.10.tgz#26d67921c3edd562c7d2bee136d04faefa99bb3c"
|
||||||
|
Loading…
Reference in New Issue
Block a user