Directus 10.10 Azure MSSQL 设置

问题描述 投票:0回答:1

我尝试将 Directus 10.10 作为容器应用程序部署到 azure,使用无服务器 mssql 数据库和 azure 文件存储来存储 /extensions 和 /uploads。两者都是通过容器应用程序卷安装的。如果没有流量,容器的复制预计为 0。

容器启动时,容器崩溃并显示以下日志:

RequestError: ALTER TABLE [directus_extensions] ADD [id] uniqueidentifier null, [folder] nvarchar(255), [source] nvarchar(255), [bundle] uniqueidentifier - Column names in each table must be unique. Column name 'id' in table 'directus_extensions' is specified more than once.
at RequestTokenHandler.onErrorMessage (/directus/node_modules/.pnpm/[email protected]/node_modules/tedious/lib/token/handler.js:287:21)
at Readable.<anonymous> (/directus/node_modules/.pnpm/[email protected]/node_modules/tedious/lib/token/token-stream-parser.js:18:33)
at Readable.emit (node:events:517:28)
at addChunk (node:internal/streams/readable:368:12)
at readableAddChunk (node:internal/streams/readable:341:9)
at Readable.push (node:internal/streams/readable:278:10)
at next (node:internal/streams/from:98:31)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'EREQUEST',
number: 2705,
state: 4,
class: 16,
serverName: 'my-dev-db',
procName: '',
lineNumber: 1
[09:34:45.689] INFO: Skipping CLI extensions initialization due to outstanding migrations.
[09:34:45.694] INFO: Initializing bootstrap...
[09:34:45.766] INFO: Database already initialized, skipping install
[09:34:45.766] INFO: Running migrations...
[09:34:45.776] INFO: Applying Marketplace...

数据库一开始是空的,崩溃后,看起来表都存在了。有人知道发生了什么事或如何调试吗?

在空数据库上出现日志消息“数据库已初始化”很奇怪吗?

我的目标是使用 directus SDK 并获取公共可用对象,如常见问题解答、新闻等。所有内容都不是非常时间敏感且可缓存的。为了安全的成本,必须能够仅根据请求启动容器,而不是让它无限期地运行。我希望查询是这样的:

import { createDirectus, rest, readItems } from '@directus/sdk';

const client = createDirectus('http://my-azure-instance.whatever-from-microsoft.com/api').with(rest());

const result = await client.request(
    readItems('faqs', {
        fields: ['id', 'title'],
    })
);
sql-server azure docker directus azure-container-apps
1个回答
0
投票

错误指出:

ALTER TABLE [directus_extensions] ADD [id] uniqueidentifier null,[folder] nvarchar(255),[source] nvarchar(255),[bundle] uniqueidentifier - 每个表中的列名称必须是唯一的。表“directus_extensions”中的列名“id”被指定多次。

对我来说,解决方案是表 directus_extensions 然后再次创建它:

DROP TABLE [dbo].[directus_extensions]

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[directus_extensions] (
    [name] NVARCHAR (255) NOT NULL
);

这样迁移就可以顺利进行了!

© www.soinside.com 2019 - 2024. All rights reserved.