From aea74550e14a0f0121fb21a2bba6bb6882c2050f Mon Sep 17 00:00:00 2001 From: Nick Platt Date: Tue, 2 May 2017 15:33:16 -0400 Subject: [PATCH] pgsql: Expand layer, namespace column widths Presently the layer and namespace tables use type `varchar(128)` for their respective name columns. For layer, this width works fine enough using the sha256 digests provided by docker. However, if one wishes to encode the image name into the layer name (eg, to avoid collisions like in [0]), the limit of 128 bytes starts to feel a bit cramped. Bump to 256 bytes, since that "ought to be enough for anybody." (TM) [0]: https://github.com/coreos/clair/issues/319 --- .../migrations/00007_expand_column_width.go | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 database/pgsql/migrations/00007_expand_column_width.go diff --git a/database/pgsql/migrations/00007_expand_column_width.go b/database/pgsql/migrations/00007_expand_column_width.go new file mode 100644 index 00000000..8bfdaaab --- /dev/null +++ b/database/pgsql/migrations/00007_expand_column_width.go @@ -0,0 +1,31 @@ +// Copyright 2017 clair authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package migrations + +import "github.com/remind101/migrate" + +func init() { + RegisterMigration(migrate.Migration{ + ID: 7, + Up: migrate.Queries([]string{ + `ALTER TABLE Namespace ALTER COLUMN version_format SET DATA TYPE varchar(256);`, + `ALTER TABLE Layer ALTER COLUMN name SET DATA TYPE varchar(256);`, + }), + Down: migrate.Queries([]string{ + `ALTER TABLE Namespace ALTER COLUMN version_format SET DATA TYPE varchar(128);`, + `ALTER TABLE Layer ALTER COLUMN name SET DATA TYPE varchar(128);`, + }), + }) +}