Использование column_validators в Pycassa - PullRequest
2 голосов
/ 23 ноября 2011

Я пытаюсь настроить некоторые значения column_validators в pycassa, но у меня возникают проблемы с настройкой какого-либо типа суперколума: мне кажется, что я не могу установить валидатор для столбца, содержащегося в суперколонке.Я пытаюсь что-то вроде

cf.column_validators['supercolumn_name']['column_name'] = types.FloatType()

, которое не работает, потому что второй словарь еще не инициализирован, пытаясь установить его на что-то вроде

cf.column_validators['supercolumn_name'] = {}

не работаетлибо ... Так что любой пример того, как с этим справиться, приветствуется, так как официальный документ Pycassa не показывает более подробную информацию по этому вопросу.Кроме того, эти валидаторы не кажутся постоянными, так есть ли возможность их постоянной установки?

РЕДАКТИРОВАТЬ: После просмотра источника pycassa я обнаружил, что для валидаторов вам не нужно указывать суперколонкустолбец содержится в, так что

cf.column_validators['column_name'] = types.FloatType()

должно сработать!Тем не менее, остается вопрос: можно ли сделать валидаторы постоянными?

1 Ответ

4 голосов
/ 23 ноября 2011

Возможно, вы не хотите напрямую изменять column_validators.Они устанавливаются автоматически на основе свойств column_metadata семейства столбцов.Вы можете использовать команду 'alter_column' в pycassa, чтобы изменить схему семейства столбцов в Cassandra.Тогда column_validators будет установлен правильно постоянно.

http://pycassa.github.com/pycassa/api/pycassa/system_manager.html#pycassa.system_manager.SystemManager.alter_column

...