Org.springframework.jdbc.BadSqlGrammarException ao criar tabela Usuario

Oi pessoal!
Criei uma classe para automáticamente criar minha tabela usuario e role pro Spring Security, o SQL está assim:

template.execute("CREATE TABLE role(id_role bigint, nome character varying(255)" +
	        		", CONSTRAINT PK_role PRIMARY KEY(id_role));");
	       
	        template.execute("CREATE TABLE usuario(id_usuario bigserial NOT NULL" +
	        		", login character varying(255), senha character varying(255)" +
	        		", CONSTRAINT PK_usuario PRIMARY KEY(id_usuario)" +
	        		", CONSTRAINT FK_role FOREIGN KEY(id_role) REFERENCES role (id_role));");

E a exception que recebo é:

Caused by: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [CREATE TABLE usuario(id_usuario bigserial NOT NULL, nome character varying(255), senha character varying(255), CONSTRAINT PK_usuario PRIMARY KEY(id_usuario), CONSTRAINT FK_role FOREIGN KEY(id_role) REFERENCES role (id_role));]; nested exception is org.postgresql.util.PSQLException: ERRO: coluna "id_role" referenciada na restrição de chave estrangeira não existe

Só que a tabela role é criada, a coluna id_role existe, não consigo achar o erro no sql pra que não crie a tabela usuario. Alguém sabe informar onde está o erro?
Abraço