Я пытаюсь изменить длину атрибута Description в AbstractRuleEngineRule (отображается в виджете правила продвижения в backoffice)
Поскольку столбец уже сохранен в базе данных, и мы не можем инициализировать систему, я нашел обходной путь для этого изменив таблицу во время обновления системы.
@SystemSetup(extension = "ezibuypromotionengine")
public class CoreSystemSetup extends AbstractSystemSetup{
private static final Logger LOG = Logger.getLogger(CoreSystemSetup.class);
/**
* This method will be called during the system update.
*/
@SystemSetup(type = Type.PROJECT, process = Process.UPDATE)
public void updateColumnsSize(final SystemSetupContext context)
{
Connection conn = null;
PreparedStatement pstmt = null;
try
{
conn = Registry.getCurrentTenant().getDataSource().getConnection();
pstmt = conn.prepareStatement("alter table AbstractRuleEngineRule alter column description varchar(500)");
pstmt.execute();
}
catch (final SQLException e)
{
LOG.error("Unable to alter database column - " + e);
}
finally
{
Utilities.tryToCloseJDBC(conn, pstmt, null);
}
}
}
Но я получаю ошибку
ERROR [hybrisHTTP26] [CoreSystemSetup] Unable to alter database column - java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: PUBLIC.ABSTRACTRULEENGINERULE