database.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import path from 'path';
  2. export default ({ env }) => {
  3. const client = env('DATABASE_CLIENT', 'sqlite');
  4. const connections = {
  5. mysql: {
  6. connection: {
  7. host: env('DATABASE_HOST', 'localhost'),
  8. port: env.int('DATABASE_PORT', 3306),
  9. database: env('DATABASE_NAME', 'strapi'),
  10. user: env('DATABASE_USERNAME', 'strapi'),
  11. password: env('DATABASE_PASSWORD', 'strapi'),
  12. ssl: env.bool('DATABASE_SSL', false) && {
  13. key: env('DATABASE_SSL_KEY', undefined),
  14. cert: env('DATABASE_SSL_CERT', undefined),
  15. ca: env('DATABASE_SSL_CA', undefined),
  16. capath: env('DATABASE_SSL_CAPATH', undefined),
  17. cipher: env('DATABASE_SSL_CIPHER', undefined),
  18. rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true),
  19. },
  20. },
  21. pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
  22. },
  23. postgres: {
  24. connection: {
  25. connectionString: env('DATABASE_URL'),
  26. host: env('DATABASE_HOST', 'localhost'),
  27. port: env.int('DATABASE_PORT', 5432),
  28. database: env('DATABASE_NAME', 'strapi'),
  29. user: env('DATABASE_USERNAME', 'strapi'),
  30. password: env('DATABASE_PASSWORD', 'strapi'),
  31. ssl: env.bool('DATABASE_SSL', false) && {
  32. key: env('DATABASE_SSL_KEY', undefined),
  33. cert: env('DATABASE_SSL_CERT', undefined),
  34. ca: env('DATABASE_SSL_CA', undefined),
  35. capath: env('DATABASE_SSL_CAPATH', undefined),
  36. cipher: env('DATABASE_SSL_CIPHER', undefined),
  37. rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true),
  38. },
  39. schema: env('DATABASE_SCHEMA', 'public'),
  40. },
  41. pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
  42. },
  43. sqlite: {
  44. connection: {
  45. filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')),
  46. },
  47. useNullAsDefault: true,
  48. },
  49. };
  50. return {
  51. connection: {
  52. client,
  53. ...connections[client],
  54. acquireConnectionTimeout: env.int('DATABASE_CONNECTION_TIMEOUT', 60000),
  55. },
  56. };
  57. };