Единственное решение, которое работает во всех случаях, которые я видел, - это удаление и повторное использование. Может быть, есть и другой способ, но, очевидно, этот путь не оставляет шансов на то, что старое государство останется там, поэтому я предпочитаю это. Bash one-liner вы можете установить как макрос, если вы часто испортите вещи в git:
REPO_PATH=$(pwd) && GIT_URL=$(git config --get remote.origin.url) && cd .. && rm -rf $REPO_PATH && git clone --recursive $GIT_URL $REPO_PATH && cd $REPO_PATH
* предполагает, что ваши .git-файлы не повреждены
У MySQL нет внутреннего типа данных типа boolean. Он использует наименьший целочисленный тип данных - TINYINT.
BOOLEAN и BOOL являются эквивалентами TINYINT (1), поскольку они являются синонимами.
Попробуйте создать эту таблицу -
CREATE TABLE table1 (
column1 BOOLEAN DEFAULT NULL
);
Затем запустите SHOW CREATE TABLE, вы получите этот выход -
CREATE TABLE `table1` (
`column1` tinyint(1) DEFAULT NULL
)
Начиная с версии MySql 5.1 reference
BIT(M) = approximately (M+7)/8 bytes,
BIT(1) = (1+7)/8 = 1 bytes (8 bits)
======================== =================================================
TINYINT(1) take 8 bits.
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html#data-types-storage-reqs-numeric
Обзор числового типа для MySQL: BOOL, BOOLEAN: Эти типы являются синонимами для TINYINT (1). Значение нуля считается ложным. Ненулевые значения считаются истинными.
См. Здесь: https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html
В новейших версиях MySQL есть новый тип данных BIT
, в котором вы можете указать количество бит в поле, например BIT(1)
для использования в качестве типа Boolean
, поскольку оно может быть только 0
или 1
.
Просто примечание для разработчиков php (у меня нет необходимых точек stackoverflow, чтобы опубликовать это как комментарий) ... автоматическое (и молчащее) преобразование в TINYINT означает, что php получает значение из столбца BOOLEAN как " 0 "или" 1 ", а не ожидаемый (по мне) true / false.
Разработчик, который смотрит на SQL, используемый для создания таблицы, и видит что-то вроде:" some_boolean BOOLEAN NOT NULL DEFAULT FALSE , «может разумно ожидать увидеть истинные / ложные результаты, когда извлекается строка, содержащая этот столбец. Вместо этого (по крайней мере, в моей версии PHP) результат будет «0» или «1» (да, строка «0» или строка «1», а не int 0/1, спасибо php).
Это нит, но достаточно, чтобы вызвать единичные тесты.
BIT(1)
илиBIT(17)
или дажеBIT(64)
– ypercubeᵀᴹ 23 June 2012 в 09:25