Skip to content

Commit c23ff10

Browse files
authored
fix: make datasource url optional (#2305)
1 parent 757893e commit c23ff10

File tree

4 files changed

+5
-9
lines changed

4 files changed

+5
-9
lines changed

packages/schema/src/language-server/validator/datasource-validator.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ export default class DataSourceValidator implements AstValidator<DataSource> {
4343
private validateUrl(ds: DataSource, accept: ValidationAcceptor) {
4444
const url = ds.fields.find((f) => f.name === 'url');
4545
if (!url) {
46-
accept('error', 'datasource must include a "url" field', {
47-
node: ds,
48-
});
46+
// url field is optional for new versions of Prisma
47+
return;
4948
}
5049

5150
for (const fieldName of ['url', 'shadowDatabaseUrl']) {

packages/schema/tests/generator/prisma-generator.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe('Prisma generator test', () => {
2121
process.chdir(r.name);
2222

2323
execSync('npm init -y', { stdio: 'ignore' });
24-
execSync('npm install prisma');
24+
execSync('npm install prisma@6.19.x');
2525
});
2626

2727
afterEach(() => {

packages/schema/tests/schema/validation/datasource-validation.test.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ describe('Datasource Validation Tests', () => {
1010
expect(result).toMatchObject({
1111
status: 'rejected',
1212
reason: {
13-
cause: [
14-
{ message: 'datasource must include a "provider" field' },
15-
{ message: 'datasource must include a "url" field' },
16-
],
13+
cause: [{ message: 'datasource must include a "provider" field' }],
1714
},
1815
});
1916
});

tests/integration/tests/cli/generate.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ model Post {
4545
// set up project
4646
fs.writeFileSync('package.json', JSON.stringify({ name: 'my app', version: '1.0.0' }));
4747
createNpmrc();
48-
installPackage('prisma @prisma/client zod@^3.25.0 @types/node@20');
48+
installPackage('prisma@6.19.x @prisma/client@6.19.x zod@^3.25.0 @types/node@20');
4949
installPackage(path.join(__dirname, '../../../../packages/runtime/dist'));
5050

5151
// set up schema

0 commit comments

Comments
 (0)